1. 程式人生 > >iOS 語音類App播放自己的錄音完畢後,如何重新繼續播放音樂

iOS 語音類App播放自己的錄音完畢後,如何重新繼續播放音樂

 前一篇文章講述了,iOS平臺如何錄音,以及如何播放錄音,也就是回放錄音。那麼,如果在你播放你的錄音之前,已經有音樂類的App在後臺正在播放音樂,這個時候一般的做法是先暫停音樂播放---->播放你自己的錄音---->繼續播放後臺的音樂。

其實,方法也比較簡單,就幾行程式碼如下

播放之前 

[[AVAudioSession sharedInstance] setActive:YES error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
 然後播放

播放完成之後,正確的程式碼如下

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];


錯誤的程式碼 就是僅僅簡單的 
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
上面這個僅僅是對作業系統的AVAudio管理器說:我不用Auduio服務了。但是其他App的Audio服務沒有被喚醒,所以就不會自動繼續音樂播放。

正確的程式碼意思是告訴AVAuduio管理器說:我不用Audio服務了,你喚醒其他需要Auduio服務的App吧。

這個官方有一個說明,圖片如下


另外,比較完善的做法是 ,你的App在獲取AVAudio服務之前,儲存原來的AVAudioSession一部分屬性,等待你自己的語音播放完畢後再恢復,一般就是快取一個catogery屬性就可以了。

目前官方文件在 這裡 ,不知道以後會不會還存在。