是否可以取消远程AVPlayerItem的下载?

时间:2012-01-03 23:52:56

标签: iphone objective-c ios video avfoundation

是否可以在不从播放器本身移除或停止视频的情况下取消远程AVPlayerItem的下载?

我已尝试[item.asset cancelLoading],但它似乎不是正确的方法(它似乎适用于AVAsynchronousKeyValueLoading的{​​{1}}部分。)

3 个答案:

答案 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;

这将阻止当前项目加载 - 这是我找到完成此任务的唯一方法。