bar*_*ley 8 iphone audio ios avplayer avqueueplayer
我有一个AVQueuePlayer基于音频流的播放器需要在后台运行.玩家需要继续运行,直到完成所有列表的播放.当然,如果网络连接变坏,它将不得不暂停,但它应该在网络连接恢复时自动恢复.
为此,我正在监控
AVPlayerItem.statusAVPlayerItem.playbackLikelyToKeepUpAVPlayer.currentItemAVPlayer.status AVPlayer.error使用KVO.例如,如果网络连接从临时错误恢复,我期望currentAVPlayerItem.status变为AVPlayerStatusItemReadyToPlay,将报告给我的播放器,我可以[AVQueuePlayer play]在那时发布.
这种机制(逻辑)似乎在某些情况下起作用,但在离线环境中经常AVPlayerItem.status变为AVPlayerItemStatusFailed,哪个项目AVQueuePlayer似乎自动跳过.结果,队列将变为空,并且不能从中接收回调AVPlayerItem.
我希望,在某些属性AVPlayer,当网络连接变坏/恢复,但似乎没有任何改变(会改变status,error等等).
显然我可以监控Reachability,但当应用程序在后台运行时,这不起作用.
我怎么知道网络何时重新启动并且AVQueuePlayer在这种情况下可以再次播放?
我可能只是这个地区的新手.如果有人能够让我大致了解他/她如何AVQueuePlayer在不被临时网络连接问题完全阻止的情况下实现持续的游戏体验,那将是一个非常棒的帮助!
您可以监视AVPlayerItemPlaybackStalledNotification以了解该项目何时完成播放其缓冲区,但不是整个文件:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(AVPlayerItemPlaybackStalledNotification:)
name:AVPlayerItemPlaybackStalledNotification object:playerItem];
Run Code Online (Sandbox Code Playgroud)
一旦有足够的缓冲区可以继续,您应该会收到一条通知,听起来playbackLikelyToKeepUp您已经在监视该通知。
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |