【问题标题】:AVAudioPlayer Does not work on iPhone 5AVAudioPlayer 不适用于 iPhone 5
【发布时间】:2012-12-04 19:18:48
【问题描述】:

有没有人在使用 iPhone 5 时遇到过 AVAudioPlayer 的问题?我的代码在 iPhone 4、iPhone 4S 和 iPad(第 3 代)上正常运行,但现在随机无法在 iPhone 5 上运行。我看到了这个问题,但没有人解决实际问题:

AVAudioPlayer is not working in 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(第三代)上完美运行。

有人有什么想法吗?谢谢

【问题讨论】:

  • 当你说它在 iPhone 5 上不工作时,你的意思是它根本不播放还是只是没有声音?您是否检查过 AVAudioPlayer 属性(即 currentTime、isPlaying)以确保它确实在播放?
  • 您是否在某处设置了 AVAudioSession?

标签: iphone ios ios6 avaudioplayer iphone-5


【解决方案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

【讨论】:

    【解决方案2】:

    确保设备的声音开关没有处于“静音”状态并且音量足够高。

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

    【讨论】:

    • [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];强制音量达到最大值,所以这不是问题
    • 我不确定它是否也会改变静音开关
    猜你喜欢
    • 1970-01-01
    • 2013-02-24
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多