【发布时间】: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