2012-05-31 7 views
6

Ich habe eine App, die Streaming Video verarbeitet. Beginnend mit einer .m3u8 Playlist erstellt es eine Reihe von AVAssets und blättert durch sich durchAVPlayer schaltet nicht zwischen progressivem Download und Streaming um

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

Dies funktioniert gut, aber vorher mag ich ein kurzes mp4 Video mit progressivem Download auszustrahlen. Ich die AVPlayer laden

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

Es spielt mit, aber wenn ich mit dem Streaming-Video weitermachen wie bisher, bekomme ich einen Status AVPlayerStatusFailed, mit dem Fehler in AVPlayerItem von The operation could not be completed

Denn es, zu arbeiten I Sie müssen ein AVPlayer-Objekt für den (progressiven Download) Preroll erstellen und dann ein komplett neues AVPlayer-Objekt, um das Streaming-Video abzuspielen.

Ist es möglich, dass eine einzelne AVPlayer-Instanz kein progressives Download-Video gefolgt von Streaming-Video abspielen kann? Oder könnte ich etwas anderes falsch machen?

+1

Ich habe das gleiche Problem. Mit MPMoviePlayerController gibt es die movieSourceType-Eigenschaft, die wir einstellen können, aber nicht mit AVPlayer oder AVPlayerItem –

+0

Dieser Fehler ist immer noch auf iOS7.1 SDK –

+0

@KentNguyen ein wenig spät, aber Sie können lesen https://developer.apple.com/library/mac/ Dokumentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html, sieh dir den Teil ** an, um einen HTTP-Livestream für die Wiedergabe zu erstellen und vorzubereiten ** – onmyway133

Antwort

2

Dieser Fehler ist ein bekanntes Problem und angeblich in der nächsten Hauptversion von iOS behoben.

In der Zwischenzeit ist das Erstellen eines neuen AVPlayer-Objekts die einzige bekannte Problemumgehung.

+1

Laut den Apple Ingenieuren bei WWDC14, hat iOS 8 immer noch dieses Problem. Sie erwähnten auch, dass es sehr niedrig auf ihrer Prioritätenliste war. Zurück zum Workaround! – coco