我的应用程序通过 AVPlayer
播放流式音频,并使用 MPNowPlayingInfoCenter
在设备锁屏界面上显示有关流的信息。
当音频实际播放时,这很正常,但是如果由于网络减速而导致流媒体出现故障(即我收到 AVPlayerItemPlaybackStalledNotification
),设备锁屏界面上的信息就会消失。但是,如果流恢复播放,则该信息将重新出现。
这很令人困惑,因为当正在播放的信息从锁屏界面消失时,它给人的印象是应用程序已停止播放。但是,当锁屏界面 UI 表明这不会发生时,它会恢复播放。
是否有一些方法可以确保现在播放的信息在网络速度问题导致流媒体未能播放时仍然可见?似乎唯一保持一致的锁屏界面 UI 的方法是在出现故障时实际中断网络连接,这有点愚蠢但至少不会让人困惑。
如果需要更多细节:
- 当应用程序收到该通知时,它所做的唯一事情就是更新 UI。
- 当当前节目存在时,应用程序永远不会清除
MPNowPlayingInfoCenter
,因此只要流媒体应该正在播放,就应该显示非空数据。
addPeriodicTimeObserverForInterval:
- yairszAVPlayerItemPlaybackStalledNotification
?如果不监听会发生什么?另外,关于缓存数据流方面有什么需要注意的吗? - Miralem CebicMPNowPlayingInfoCenter
声明nowPlayingInfo
为copy
实例变量,所以这应该没有关系。无论如何,它通常都可以正常工作,除非发生音频卡顿。 - Tom Harrington