【问题标题】:AVPlayer not switching between progressive download and streamingAVPlayer 不会在渐进式下载和流式传输之间切换
【发布时间】:2012-05-31 18:19:51
【问题描述】:

我有一个处理流媒体视频的应用。从 .m3u8 播放列表开始,它创建一个 AVAsset 数组,并通过

[player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:[assetItems objectAtIndex:index]]]

这很好用,但在此之前我想使用渐进式下载播放一段简短的 mp4 视频。我加载 AVPlayer 使用

AVAsset *prerollAsset = [AVAsset assetWithURL:prerollURL];
[player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:prerollAsset]];

它可以播放,但是当我像以前一样继续流式视频时,我得到了 AVPlayerStatusFailed 的状态,并且 AVPlayerItem 中的错误为 The operation could not be completed

为了让它工作,我需要为(渐进式下载)预卷创建一个 AVPlayer 对象,然后创建一个全新的 AVPlayer 对象来开始播放流视频。

是否有可能单个 AVPlayer 实例无法播放渐进式下载视频和流式视频?还是我做错了什么?

【问题讨论】:

  • 我遇到了同样的问题。使用 MPMoviePlayerController 可以设置 movieSourceType 属性,但不能使用 AVPlayer 或 AVPlayerItem
  • 这个bug在iOS7.1 SDK上依然存在
  • @KentNguyen 有点晚了,但您可以阅读developer.apple.com/library/mac/documentation/AudioVideo/…,查看创建和准备用于播放的 HTTP 直播流部分
  • @onmyway133 请注意,我们通常无法控制要求播放的格式;例如,流媒体内容与渐进式下载广告的交互。
  • AVFoundationErrorDomain Code=-11800 和 OSStatus 错误 -12783 — 你有同样的问题吗?然后我会把它留在这里,以可能从一天的谷歌搜索中拯救其他人。

标签: ios video streaming avplayer


【解决方案1】:

此错误是一个已知问题,据称已在 iOS 的下一个主要版本中修复。

在此期间,创建一个新的 AVPlayer 对象是唯一已知的解决方法。

【讨论】:

  • 根据苹果工程师在WWDC14上的说法,iOS 8仍然存在这个问题。他们还提到它在他们的优先级列表中非常低。返回解决方法!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 2011-09-10
相关资源
最近更新 更多