是否可以在不从播放器本身移除或停止视频的情况下取消远程AVPlayerItem
的下载?
我已尝试[item.asset cancelLoading]
,但它似乎不是正确的方法(它似乎适用于AVAsynchronousKeyValueLoading
的{{1}}部分。)
答案 0 :(得分:6)
我为此提交了TSI并收到了以下回复:
我和我们的AV基金会工程师谈到了这一点,不,不是 可以取消远程AVPlayerItem的下载 从播放器本身删除或停止视频。
答案 1 :(得分:1)
如果我正确理解了您的问题,您可以使用 AVPlayer 播放项目列表,并希望从远程源添加其他项目。
使用 + playerItemWithURL:或 -initWithURL:方法创建新的 AVPlayerItem 时,会立即返回该项目,但是status AVPlayerItemStatusUnknown。
在将此项添加到 AVPlayer 播放列表之前,您应该等到状态更改为 AVPlayerItemStatusReadyToPlay 。因此,如果 AVPlayerItemStatusFailed 状态或超时超出,您可以简单地发布此 AVPlayerItem ,并且您的播放器将播放所有其余视频而不会停止。
答案 2 :(得分:0)
要扩展sevenflow的答案:当您想要停止加载AVPlayerItem时,请使用AVQueuePlayer的removeAllItems然后重新初始化它。
[self.avPlayer removeAllItems];
self.avPlayer = [AVQueuePlayer playerWithURL:[NSURL URLWithString:@""]];
self.avPlayer = nil;
这将阻止当前项目加载 - 这是我找到完成此任务的唯一方法。