2013-01-25 121 views
0

這是不是重複的問題我已經搜索了每一個地方,但不幸我沒有找到任何解決方案。AVAudioplayer不會在後臺播放

我的問題我想在應用程序在後臺播放音樂文件時,它應該在調用任何本地通知時開始播放。

我有哪裏我檢查應用程序在後臺存在的函數,然後我寫語句來播放音樂文件,但[avaudioplayer播放]總是返回NO來代替。我檢查了錯誤代碼,但它顯示爲空。

我也編輯了info.plist文件來設置音頻文件設置在後臺播放。

+0

工作參考http://stackoverflow.com/questions/7965419/avaudioplayer-play-file-in-background和http://stackoverflow.com/questions/7619794/ play-music-in-the-the-background-using-avaudioplayer – Cris

+0

以上這兩個我已經提到但沒有結果:(播放功能正在返回NO。我的應用在後臺,然後我試圖播放音樂(不像開始音樂--->在後臺進入--->繼續玩) –

+0

我想它需要在主線程上運行,然後你可以放在後臺線程而不是其他方式,但不知道! – Cris

回答

1

設置音頻會話像這樣:(audioPlayer是AVPlayer這裏的實例)

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    NSLog(@"inside observer"); 
    if (self.audioPlayer.status == 1) 
    { 
     [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 
               error:nil]; 
     [[AVAudioSession sharedInstance] setActive:YES 
              error:nil]; 
     [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
     [self.audioPlayer play]; 
    } 
} 

還有一兩件事要做添加應用程序的應用程序的名字,info.pist這是「所需的背景模式」字段並將一個項目添加到名爲「App plays audio」的陣列中。

它將肯定呢:)