2016-05-24 19 views
2

Da von AVPlayer gerenderte Untertitel manchmal mit anderen UI-Komponenten überlappen, möchte ich CC in einer separaten Ansicht rendern.So extrahieren Sie Closedcaptions/Untertitel von AVPlayer

Ich kann AVPlayer cc-Rendering ausschalten, indem ich closedCaptionDisplayEnabled auf NO setze, aber ich habe keine Möglichkeit gefunden, die Untertitel zu extrahieren, die ich rendern möchte.

Weiß jemand, ob es eine Möglichkeit gibt, CC-Zeichenfolge aus AVPlayer/AVPlayerItem zu extrahieren? Ich bin in der Lage, die AVAssetTrack mit AVMediaTypeClosedCaption zu identifizieren, aber ich bin nicht sicher, wie Sie die Zeichenfolge für eine bestimmte Zeit extrahieren.

Antwort

1

können Sie den folgenden Code verwenden:

AVMediaSelectionGroup* aVMediaSelectionGroup = [playerItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible]; 
[playerItem selectMediaOption:aVMediaSelectionGroup.options[0] inMediaSelectionGroup:aVMediaSelectionGroup]; 

Und Sie werden die ersten verfügbaren Untertitel für das Video auf einem Bildschirm sehen. Sie können auch alle verfügbaren Untertitelsprachen durchsuchen, indem Sie das Array aVMediaSelectionGroup.options loopen. Jedes Element dieses Arrays enthält auch eine Beschreibung, die Sie dem Benutzer anzeigen können.