如何强制 AVPlayer 在暂停状态下暂停缓冲?

How to force AVPlayer to pause buffering when it is in paused state?

我正在使用 AVPlayer 播放视频。我使用 AVPlayer pause 暂停播放器。但通过 Charles 观察发现,当播放器处于暂停状态时,流段仍在下载。

我找到了 AVPlayer buffering, pausing notification, and poster frame 但他们说是

AVPlayer will buffer the video in several cases, none cleary documented

这是正常现象吗?如何在播放器暂停时让缓冲暂停?

您需要管理 avplayer currentItem 的 preferredForwardBufferDuration。如果你想停止缓冲将值设置为 1 因为如果你将它设置为 0 它将自动设置

self.avPlayer.currentItem.preferredForwardBufferDuration = 1;

来自 Apple 文档: 此 属性 定义了首选的转发缓冲持续时间(以秒为单位)。如果设置为 0,播放器将为大多数用例选择适当的缓冲级别。将此 属性 设置为较低的值将增加播放停止和重新缓冲的机会,而将其设置为较高的值将增加对系统资源的需求。