我有一个AVQueuePlayer需要在后台运行的基于音频流的播放器。播放器需要继续运行,直到播放完所有列表。当然,如果网络连接变坏,它将不得不暂停,但当网络连接恢复时,它应该会自动恢复。
为此,我正在监视
AVPlayerItem.statusAVPlayerItem.playbackLikelyToKeepUpAVPlayer.currentItemAVPlayer.statusAVPlayer.error
使用 KVO。例如,如果网络连接从临时错误中恢复,我预计currentAVPlayerItem.status会变成AVPlayerStatusItemReadyToPlay,这将报告给我的播放器,我可以[AVQueuePlayer play]在那个时候发出。
这种机制(逻辑)似乎在某些情况下有效,但在离线环境中非常频繁地AVPlayerItem.status变为,似乎自动跳过了AVPlayerItemStatusFailed哪个项目。AVQueuePlayer结果,队列最终将是空的,并且无法从 接收回调AVPlayerItem。
我希望AVPlayer当网络连接变坏/恢复时,某些属性会改变,但似乎没有任何改变(status等error)。
显然我可以监控Reachability,但是当应用程序在后台运行时这不起作用。
在这种情况下,我如何知道网络何时恢复并AVQueuePlayer可以再次播放?
我可能只是这个领域的新手。如果有人能给我一个大致的想法,他/她如何AVQueuePlayer在不被临时网络连接问题完全阻止的情况下获得持续的游戏体验,那也将是一个很棒的帮助!