[英]iOS background audio gets stopped when playback is finished
關於在后台播放音頻, SOW上已經有幾個問題,但是我的稍有不同(據我所知!)
因此,我在應用程序中有一個播放列表,用戶可以在其中選擇循環播放音頻,或針對應用程序中可用的所有音頻隨機/連續播放。
使用以下代碼以及必需的Info.plist設置:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; [[AVAudioSession sharedInstance] setActive:YES error:nil];
Info.plist設置:
<key>UIBackgroundModes</key> <array> <string>audio</string> </array>
音頻即使在屏幕鎖定時也可以在后台正常工作,但是在音頻播放完成時會出現問題。 使用NSLogs,我可以看到代碼再次到達了AudioPlayer的“播放”方法,但是音頻不會播放下一首歌曲,也不會播放循環中要播放的歌曲。
有人有指針嗎?
閱讀文檔 ,相關段落:
我的音頻存儲在應用程序本地。 當UIBackgroundModes鍵包含音頻值時,系統的媒體框架會自動防止相應的應用程序在移至后台時被掛起。 只要它正在播放音頻或視頻內容或記錄音頻內容,該應用就會繼續在后台運行。
但是,如果錄制或播放停止,系統將掛起該應用程序。
因此,從本質上講,為了破解安裝程序,我使用了兩個AVAudioPlayers,而不是等待audioPlayerDidFinishPlaying:的委托回調,我這樣做了:
如果(((audioPlayer1.duration-audioPlayer1.currentTime)<1){
//play Audio 2
}
不太確定是否有比這更好的建議?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.