Wechseln zwischen alternativen Audiostreams mit AVPlayer

8

Ich habe eine Testanwendung, die AVPlayer zum Abspielen von Videos verwendet, die von einer m3u8 HLS-Wiedergabeliste angegeben werden. Die Wiedergabeliste gibt mehrere alternative Audio-Streams an, die der Beispiel-Wiedergabeliste "Listing 10" von Apple ähnlich sind: Ссылка Die App muss während der Wiedergabe des Videos zwischen den alternativen Audiostreams wechseln können. Zum Beispiel sollte die App in der Lage sein, zwischen den englischen, französischen und spanischen Audio-Streams zu wechseln, indem der Benutzer während der Wiedergabe des Videos auf Schaltflächen in der App tippt.

Welche AVFoundation-Klassen und -Methoden würden vom AVPlayer und seinen verwandten Objekten verwendet, um zwischen den Audio-Streams zu wechseln, die in der m3u8-Playlist angegeben sind? Ich habe mir die AVFoundation-Klassendokumentation angeschaut, sehe aber nicht, wie das geht.

Ein Link zu einem Beispielcode, der zeigt, wie das geht, wäre großartig. Ich habe im Internet nach dieser Information ohne Erfolg gesucht. Danke für jede Hilfe mit diesem.

    
Marc Zehngut 20.07.2012, 20:05
quelle

1 Antwort

19

Bei der m3u8-Wiedergabe mit AVPlayer sieht es so aus, als ob Sie kein AVAsset zum Erstellen eines AVPlayerItems verwenden können. Sie müssen ein AVPlayerItem direkt aus dem URI erstellen. Wenn Sie einen AVPlayer mit diesem AVPlayerItem instanziieren und dann KVO auf der Eigenschaft @ "status" hören, haben Sie ein Asset in [[avPlayerInstance currentItem] asset] , wenn der Status AVPlayerStatusReadyToPlay lautet. Dies wird auf Seite 20 des AV Foundation Programming Guide beschrieben / p>

Um das Audio in verschiedene Alternativen zu ändern, verwenden Sie:

%Vor%

Und wählen Sie AVMediaSelectionOption (den gewünschten Audiokanal) mit:

%Vor%

Das gleiche gilt für Video.

Dies wird im Abschnitt "Auswahl von Audio- und Untertitelmedien nach Sprache und anderen Kriterien" im AV Foundation Release Notes für IOS 5 (3. Abschnitt).

    
user1636983 30.08.2012 23:54
quelle