当我观看我的mac的网络连接时,即使删除了包含AVPlayer的视图,我仍可以看到电影仍在缓冲。
有谁知道如何强制AVPlayer停止加载数据?
答案 0 :(得分:3)
回答这个问题可能已经很晚了,但我刚刚解决了同一个问题。 只要保存在这里,万一有人需要......
[self.player.currentItem cancelPendingSeeks];
[self.player.currentItem.asset cancelLoading];
AVPlayer
课程中没有取消方法,但AVPlayerItem
和AVAsset
课程中有取消方法!
PS:player
这里是AVPlayer
类,而不是AVQueuePlayer
类。
答案 1 :(得分:1)
我遇到了同样的问题,并且此行解决了它。.
self.avPlayer?.replaceCurrentItem(with: AVPlayerItem(url: URL.init(string: "https://www.asdfasdfasdfasdfasdfasd.net/")!))
我还调用了函数
asset?.cancelLoading()
资产是我的玩家处理程序类中的AVURLAsset
对象
答案 2 :(得分:0)
AVPlayer不是视图。您可能已“删除了视图”,但这并不意味着您已删除或停止了AVPlayer。我猜你做你想做的事就是破坏AVPlayer本身。
答案 3 :(得分:-1)
我明白了。
如果要停止加载AVPlayerItem,请使用AVQueuePlayer的removeAllItems然后重新初始化它。
[self.avPlayer removeAllItems];
self.avPlayer = [AVQueuePlayer playerWithURL:[NSURL URLWithString:@""]];
self.avPlayer = nil;
这将阻止当前项目加载 - 这是我找到完成此任务的唯一方法。