【发布时间】:2012-11-10 03:25:42
【问题描述】:
我有一个基于AVQueuePlayer 的音频流播放器,需要在后台运行。播放器需要继续运行,直到播放完所有列表。当然,如果网络连接变坏,它必须暂停,但当网络连接恢复时,它应该会自动恢复。
为此,我正在监控
AVPlayerItem.statusAVPlayerItem.playbackLikelyToKeepUpAVPlayer.currentItem-
AVPlayer.status AVPlayer.error
使用 KVO。例如,如果网络连接从临时错误中恢复,我希望currentAVPlayerItem.status 变为AVPlayerStatusItemReadyToPlay,这将报告给我的播放器,我可以在那时发出[AVQueuePlayer play]。
这种机制(逻辑)在某些情况下似乎有效,但在离线环境中相当频繁,AVPlayerItem.status 变为AVPlayerItemStatusFailed,AVQueuePlayer 似乎会自动跳过该项目。结果,队列最终将是空的,并且无法接收到来自AVPlayerItem 的回调。
我希望AVPlayer 中的某些属性会在网络连接变坏/恢复时发生变化,但似乎没有任何变化(status、error 等)。
显然我可以监控Reachability,但是当应用程序在后台运行时这不起作用。
我怎么知道网络何时恢复正常,AVQueuePlayer 在这种情况下可以再次播放?
我可能只是这个领域的新手。如果有人能大致了解他/她如何在不被临时网络连接问题完全中断的情况下获得持续的AVQueuePlayer 游戏体验,那也将是一个很棒的帮助!
【问题讨论】:
-
有同样的问题。你找到解决办法了吗?
标签: iphone ios audio avplayer avqueueplayer