处于暂停状态时如何强制 AVPlayer 暂停缓冲?
Posted
技术标签:
【中文标题】处于暂停状态时如何强制 AVPlayer 暂停缓冲?【英文标题】:How to force AVPlayer to pause buffering when it is in paused state? 【发布时间】:2015-11-19 22:55:09 【问题描述】:我正在使用 AVPlayer 播放视频。我使用AVPlayer pause
来暂停播放器。但是通过 Charles 的观察可以看出,当播放器处于暂停状态时,流段仍在被下载。
我找到了AVPlayer buffering, pausing notification, and poster frame,但他们说是
AVPlayer 会在几种情况下缓冲视频,不明确 记录在案
这是正常行为吗?播放器暂停时如何让缓冲暂停?
【问题讨论】:
在ios 9 中结帐canUseNetworkResourcesForLiveStreamingWhilePaused
。
canUseNetworkResourcesForLiveStreamingWhilePaused 根据文档应该没问题,但在我的情况下它不起作用。
【参考方案1】:
您需要管理avplayer currentItem的preferredForwardBufferDuration。如果您想停止缓冲设置值为 1,因为如果将其设置为 0,它将自动设置
self.avPlayer.currentItem.preferredForwardBufferDuration = 1;
来自 Apple 文档:此属性定义了首选的转发缓冲区持续时间(以秒为单位)。如果设置为 0,播放器将为大多数用例选择适当的缓冲级别。将此属性设置为较低的值会增加播放停止和重新缓冲的机会,而将其设置为较高的值会增加对系统资源的需求。
【讨论】:
以上是关于处于暂停状态时如何强制 AVPlayer 暂停缓冲?的主要内容,如果未能解决你的问题,请参考以下文章
使用 AVPlayer 播放音频时如何在 UIWebView 中暂停音频