iOS AVPlayer取消缓冲

时间:2015-10-01 16:30:30

标签: ios streaming avplayer

如果我使用带

的主机加载AVPlayer文件
[AVPlayer playerWithPlayerItem:playerItem];

缓冲”需要的时间比用户想要的长,我如何让它们取消?

5 个答案:

答案 0 :(得分:7)

所以正确答案是@Che with:

  

如果你打电话给[self.player replaceCurrentItemWithPlayerItem:nil];   缓冲停止。 - Che 10月13日14:36

并且您在观察者监听来自playerWithPlayerItem的状态更新时执行此操作。谢谢大家!

答案 1 :(得分:1)

我不认为有一种方法可以直接停止缓冲。但是您可以检查AVPlayerItem的布尔localhost属性以检查缓冲区是否正在加载。我不会在AVPlayer上暂停播放。

答案 2 :(得分:1)

Swift 3

player?.replaceCurrentItem(with: nil)

答案 3 :(得分:1)

你可以试试这个

// pause buffer
[self.playerItem cancelPendingSeeks];
[self.playerItem.asset cancelLoading];

答案 4 :(得分:0)

您需要管理avplayer currentItem的 preferredForwardBufferDuration 。如果要停止将设置值缓冲为1,因为如果将其设置为0,则会自动设置

json = try JSONSerialization.jsonObject(with: data!) as? [Any]

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