我有一個基於AVQueuePlayer
的音頻流播放器,需要在後臺運行。播放器需要繼續運行,直到完成播放所有列表。當然,如果網絡連接變壞,它將不得不暫停,但當網絡連接恢復時它應該會自動恢復。如何在網絡激活(並準備播放)時從AVQueuePlayer/AVPlayerItem獲取回叫?
對於這一點,我使用KV監控
AVPlayerItem.status
AVPlayerItem.playbackLikelyToKeepUp
AVPlayer.currentItem
AVPlayer.status
AVPlayer.error
O.例如,如果網絡連接從臨時錯誤中恢復,我預計currentAVPlayerItem.status
將變爲AVPlayerStatusItemReadyToPlay
,這將報告給我的播放器,並且我可以在此時發出[AVQueuePlayer play]
。
此機制(邏輯)似乎在某些情況下工作,但在離線環境中相當頻繁,AVPlayerItem.status
變爲AVPlayerItemStatusFailed
,其中項AVQueuePlayer
似乎自動跳過。結果,隊列將變爲空,並且不能從AVPlayerItem
收到回叫。
我希望AVPlayer
的一些屬性會改變,當網絡連接壞/恢復,但似乎沒有改變(status
,error
等)。
顯然我可以監視Reachability
,但是當應用程序在後臺運行時,這不起作用。
如何知道網絡恢復時間,AVQueuePlayer
可以在這種情況下再次播放?
我可能只是這方面的新手。如果有人能夠給我一個大概的想法,他/她如何在不被臨時網絡連接問題完全阻止的情況下實現連續的AVQueuePlayer
演奏體驗,那也是一個很棒的幫助!
具有相同的問題。你有沒有找到解決辦法? – adamsfamily