2012-12-04 52 views
3

有没有人遇到过使用iPhone 5的AVAudioPlayer问题?我的代码在iPhone 4,iPhone 4S和iPad(第三代)上正常工作,但是它现在在iPhone 5上随机无法使用。我看到了这个问题,但没有人解决实际问题:AVAudioPlayer不适用于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我已经与(保留,非原子)宣布我的头。 err变量每次都为null,即使它不在iPhone 5上播放。此代码每次在iPhone 4,iPhone 4S和iPad(第3代)上都有工作。

有没有人有任何想法?谢谢

+0

当你说它不适用于iPhone 5时,你的意思是它根本没有播放或者只是没有声音?你有没有检查AVAudioPlayer属性(即currentTime,isPlaying)以确保它实际上在播放? – rocky

+0

你在什么地方设置AVAudioSession? – 8vius

回答

0

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

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

+0

[[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];强制音量达到最大,所以没有多数民众赞成不是问题 – Makleesh

+0

我不知道如果它也会改变静音开关 – k20

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

PLZ,接受它作为一个正确的答案,如果它对你有帮助,谢谢.. –

相关问题