【发布时间】:2016-02-13 21:50:38
【问题描述】:
我的 iOS 应用程序使用 AVPlayer 从网络流式传输媒体。我正在使用 KVO 来检测像缓冲 (playbackBufferEmpty) 和被赶上 (playbackLikelyToKeepUp) 这样的事件。但是,我注意到一个怪异的错误。尽管在大多数网络减速期间,playbackBufferEmpty KVO 被击中,当它恢复时,playbackLikelyToKeepUp KVO 被击中,正如预期的那样,我注意到(以某种频率)AVPlayer 将缓冲一段时间,恢复,playbackLikelyToKeepUp 被击中,音频播放可能 1-3 秒,然后音频再次停止播放,好像它正在缓冲 - 没有再次击中 playbackBufferEmpty KVO。而且它不会从中恢复。
TL;DR: playbackBufferEmpty(10-20 秒)-> playbackLikelyToKeepUp -> 播放 1-3 秒 -> 停止播放但没有命中 KVO。
最糟糕的是,当这种情况发生时,AVPlayer 不会像从缓冲中恢复时那样再次自动开始播放,并且应用程序会保持沉默,直到再次手动停止/启动 AVPlayer。最终,每次我流式传输时,它或多或少都会发生。这是AVPlayer 的已知问题吗?这是我可以关注的第三个 KVO 事件吗?或者关于如何调试的任何提示?谢谢!
编辑:附加信息:
发生这种情况时,AVPlayer 的 error 属性为 nil,status 属性为 Ready to Play,rate 属性为 1。AKA 据我所知,没有其他奇怪的事情发生.
【问题讨论】:
标签: ios audio streaming avplayer