2012-05-31 28 views
6

我有一个处理流式视频的应用程序。用.m3u8播放列表开始,它创建AVAssets数组,并通过AVPlayer不能在渐进式下载和流媒体之间切换

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

这工作得很好,通过他们翻转,但是在这之前我想用渐进式下载宣扬短mp4视频。我使用

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

它起着加载AVPlayer,但是当我像以前一样继续流式视频,我得到AVPlayerStatusFailed的状态,在AVPlayerItem错误The operation could not be completed

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

单个AVPlayer实例可能无法播放渐进式下载视频,然后是流式视频吗?或者可能还有其他事情我做错了?

+1

我遇到同样的问题。使用MPMoviePlayerController,我们可以设置movieSourceType属性,但不能与AVPlayer或AVPlayerItem一起使用 –

+0

这个错误依然存在于iOS7.1 SDK –

+0

@KentNguyen有点晚,但您可以阅读https://developer.apple.com/library/mac/文档/ AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html,查看部分**创建并准备HTTP实况流以供播放** – onmyway133

回答

2

这个bug是一个已知的问题,据称在iOS的下一个主要版本中已经修复。

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

+1

据WWDC14的Apple工程师介绍,iOS 8仍然存在这个问题。他们还提到,他们的优先级列表非常低。回到解决方法! – coco