2012-05-31 5 views
6

스트리밍 비디오를 처리하는 앱이 있습니다. .m3u8 재생 목록을 시작으로, 그것은 AVAssets의 배열을 생성하고점진적 다운로드와 스트리밍을 전환하지 않는 AVPlayer

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

이 잘 작동에 의해 그들을 통해 플립,하지만 그 전에 나는 점진적 다운로드를 사용하여 짧은 MP4 비디오를 방영하고 싶다. 나는

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

이 재생 사용 AVPlayer를로드,하지만 난 이전과 스트리밍 비디오를 계속 할 때, 나는 그것이 작동하려면 The operation could not be completed

의 AVPlayerItem의 오류, AVPlayerStatusFailed의 상태를 확인, I (프로그레시브 다운로드) 프리 롤을위한 AVPlayer 객체를 생성 한 다음 완전히 새로운 AVPlayer 객체를 만들어 스트리밍 비디오 재생을 시작해야합니다.

단일 AVPlayer 인스턴스가 프로그레시브 다운로드 비디오와 스트리밍 비디오를 재생할 수 없습니까? 아니면 제가 잘못하고있는 다른 것이 있을까요?

+1

동일한 문제가 있습니다. MPMoviePlayerController에는 AVSlayer 또는 AVPlayerItem으로 설정할 수 있지만 설정할 수없는 movieSourceType 속성이 있습니다. –

+0

이 버그는 여전히 iOS7.1 SDK –

+0

@ KentNguyen에 조금 있지만, https://developer.apple.com/library/mac/에서 읽을 수 있습니다. documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html, 해당 부분 살펴보기 ** 재생을위한 HTTP 라이브 스트림 생성 및 준비 ** – onmyway133

답변

2

이 버그는 알려진 문제이며, iOS의 다음 주요 릴리스에서 고쳐서 고쳐졌습니다.

잠시 동안 새로운 AVPlayer 개체를 만드는 것이 알려진 유일한 해결 방법입니다.

+1

WWDC14의 Apple 엔지니어에 따르면 iOS 8에는 여전히이 문제가 있습니다. 그들은 또한 그것의 우선 순위 목록에 매우 낮은 언급했다. 해결 방법으로 돌아 가기! – coco