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