Ios AVPlayer缓冲后未恢复
我的iOS应用程序使用Ios AVPlayer缓冲后未恢复,ios,audio,streaming,avplayer,Ios,Audio,Streaming,Avplayer,我的iOS应用程序使用AVPlayer从web流媒体。我使用KVO来检测诸如缓冲(playbackufferempty)和被捕获(playbackLikelyToKeepUp)之类的事件。然而,我注意到一个奇怪的特定bug。虽然在大多数网络减速期间,playbackufferemptyKVO会被命中,当它恢复时,playbackLikelyToKeepUpKVO会像预期的那样被命中,但我注意到,AVPlayer会缓冲一段时间,恢复,playbackLikelyToKeepUp会被命中,音频可能会
AVPlayer
从web流媒体。我使用KVO来检测诸如缓冲(playbackufferempty
)和被捕获(playbackLikelyToKeepUp
)之类的事件。然而,我注意到一个奇怪的特定bug。虽然在大多数网络减速期间,playbackufferempty
KVO会被命中,当它恢复时,playbackLikelyToKeepUp
KVO会像预期的那样被命中,但我注意到,AVPlayer
会缓冲一段时间,恢复,playbackLikelyToKeepUp
会被命中,音频可能会播放1-3秒,然后音频会停止播放,就好像它正在缓冲,而不会再次点击playbackufferempty
KVO。它不会从中恢复过来
TL;DR:playbackufferty
(10-20秒)->playbackLikelyToKeepUp
->播放1-3秒->停止播放,但未点击KVO
最糟糕的情况是,当发生这种情况时,AVPlayer
不会像从缓冲恢复时那样自动重新开始播放,并且在手动停止/重新启动AVPlayer
之前,应用程序处于静默状态。最终,每次我流的时候或多或少都会发生这种情况。这是AVPlayer的已知问题吗?这是我可以观看的第三个KVO事件吗?或者关于如何调试它的任何提示?谢谢
编辑:其他信息:
AVPlayer
的error
属性为nil
发生这种情况时,status
属性已准备好播放,rate
属性为1。据我所知,没有什么奇怪的事情发生。我也遇到过AVPlayer
从缓冲/网络问题中恢复的问题,我也遇到过同样的情况,AVPlayer.status
是.readyToPlay
,AVPlayer.error
是nil
,和avPlayer.rate
为1
。说不可靠!我还检查了errorLog()
,除了一般的internet连接错误之外,它没有提供任何相关信息
我试图通过设置一个计时器来检测这种状态,当计时器超时时,我检查当前视频时间和计时器启动的时间,如果时间相同(视频没有进展),我们可以假设视频在声称它正在播放时真的没有播放
然后我将其视为不可恢复状态,并通过创建新的AVPlayerItem
来重新加载整个流