AVAudioPlayer在iPhone 5上无法工作。

3

有没有人在使用 iPhone 5 的时候遇到 AVAudioPlayer 的问题?我的代码可以正常在 iPhone 4、iPhone 4S 和 iPad(第三代)上工作,但现在在 iPhone 5 上却随机出现问题。我看到这个问题,但没有人解决实际问题:

AVAudioPlayer 在 iPhone 5 上无法工作

NSURL *soundURL = [self urlForAlarmSong:songKey];    
NSError *err;
self.audioAlert = [[[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&err] autorelease];

[self.audioAlert prepareToPlay];
currentVolume=[MPMusicPlayerController applicationMusicPlayer].volume;
[[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];

[self.audioAlert play];

audioAlert是我在头文件中声明的AVAudioPlayer,使用了(retain,nonatomic)。无论何时,err变量始终为空,即使在iPhone 5上没有播放时也是如此。这段代码在iPhone 4、iPhone 4S和iPad(第3代)上每次都能完美运行。

有人有什么想法吗?谢谢!


当您说它在iPhone 5上无法正常工作时,是指其根本没有播放还是没有声音?您是否检查了AVAudioPlayer属性(如currentTime,isPlaying)以确保它正在实际播放? - rocky
你在某个地方设置了 AVAudioSession 吗? - 8vius
2个回答

1
 -(void)viewDidLoad

  {

  NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"click2"         ofType:@"mp3"]];

    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
    if(error)
    {
        NSLog(@"error in audio player:%@",[error localizedDescription]);
    }
    else

    {

     audioPlayer.delegate=self;

     [audioPlayer prepareToPlay];
    }

   }
-(IBAction)SoundButton:(id)sender

     {

       [audioPlayer play];

     }

在您的.h文件中,不要忘记导入。
   #import  AVFoundation/AVFoundation.h

并添加一个代理 AVAudioPlayerDelegate


0

确保设备的音量开关不是“静音”并且音量足够高。

看起来很显然,但可以节省数小时的压力。


[[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0]; 强制将音量调到最大,所以这不是问题的原因。 - Makleesh
我不确定它是否会改变静音开关。 - k20

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接