2012-12-04 89 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,接受它作爲一個正確的答案,如果它對你有幫助,謝謝.. –

相關問題