Titel

Audiotracks

Für die Auswahl von Audiotracks bietet das Web Receiver SDK eine AudioTracksManager Klasse, die die Auswahl der Tracks vereinfacht und optimiert, sodass du mehr Kontrolle hast und besserer Zugriff auf Eigenschaften wie Name, URL und Sprache. Dieser Kurs ist wird am besten im Ereignis-Handler für die cast.framework.events.EventType.PLAYER_LOAD_COMPLETE .

Die API bietet verschiedene Möglichkeiten, die aktiven Audiotracks abzufragen und auszuwählen. Hier ist ein Beispiel für die Auswahl eines aktiven Titels durch Angabe seiner ID:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const audioTracksManager = playerManager.getAudioTracksManager();

    // Get all audio tracks
    const tracks = audioTracksManager.getTracks();

    // Choose the first audio track to be active by specifying its ID
    audioTracksManager.setActiveById(tracks[0].trackId);
  });
context.start();

Die Klasse AudioTracksManager bietet auch eine Methode getActiveTrack()

Hier ist ein Beispiel, wie der erste Audiotrack für eine bestimmte Sprache, in diesem Fall Englisch:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const audioTracksManager = playerManager.getAudioTracksManager();

    // Set the first matching language audio track to be active
    audioTracksManager.setActiveByLanguage('en');
  });
context.start();

Die Klasse AudioTracksManager bietet auch eine Methode getTracksByLanguage(language) der alle Tracks für die angegebene Sprache zurückgibt.

Der Audiosprachcode wird aus dem Medienmanifest abgerufen und sollte RFC 5646. Sprachcodes können in zweistelliger Nomenklatur dargestellt werden (z. B. „es“, „en“ oder "de") oder eine aus vier Zeichen bestehende Nomenklatur (z. B. "en-us", "es-es" oder „fr-ca“).

Entspricht das Medienmanifest einem anderen Sprachcodestandard, Die Empfänger-App muss sie in einen RFC 5646-konformen Sprachcode konvertieren. Web- Das Receiver SDK bietet einen Abfanger-EDIT_AUDIO_TRACKS, der ausgeführt werden Änderungen:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
// Intercept the EDIT_AUDIO_TRACKS request
playerManager.setMessageInterceptor(cast.framework.messages.MessageType.EDIT_AUDIO_TRACKS, request => {
  // write logic to convert language codes here
});
context.start();

Bei der Wiedergabe von Werbeunterbrechungen kann die Auswahl des Audiotracks, z. B. Sprache, vor einer Unterbrechung erfolgte, bleibt auch nach der Pause für denselben Inhalt bestehen, auch wenn wenn die Anzeigen in einer anderen Sprache sind.

Untertitel

Für die Auswahl von Untertiteltracks bietet das Web Receiver SDK die TextTracksManager Klasse, die die Auswahl der Tracks vereinfacht und optimiert, sodass du mehr Kontrolle hast und besserer Zugriff auf Eigenschaften wie Name, URL und Sprache.

Die Klasse TextTracksManager eignet sich am besten im Event-Handler für die cast.framework.events.EventType.PLAYER_LOAD_COMPLETE .

Die Auswahl der Untertitel im Web Receiver SDK wurde vereinfacht und optimiert mit anderen Teilen des SDK.

Die API unterstützt die Steuerung von WebVTT, TTML und CEA-608.

Die Klasse TextTracksManager bietet verschiedene Möglichkeiten, ein geschlossenes Objekt abzufragen und auszuwählen. aktiviert sein. Hier ist ein Beispiel für die Auswahl des ersten Titels. aktiviert werden, indem Sie die zugehörige ID angeben:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const textTracksManager = playerManager.getTextTracksManager();

    // Get all text tracks
    const tracks = textTracksManager.getTracks();

    // Choose the first text track to be active by its ID
    textTracksManager.setActiveByIds([tracks[0].trackId]);
  });
context.start();

Die Klasse TextTracksManager bietet auch eine Methode getActiveTracks()

Hier ist ein Beispiel, wie der erste Texttrack für einen bestimmten Sprache:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const textTracksManager = playerManager.getTextTracksManager();

    // Set the first matching language text track to be active
    textTracksManager.setActiveByLanguage('en');
  });
context.start();

Die Klasse TextTracksManager bietet auch eine Methode getTracksByLanguage(language) der alle Tracks für die angegebene Sprache zurückgibt.

Der Textsprachcode wird aus dem Medienmanifest abgerufen und sollte RFC 5646. Sprachcodes können in zweistelliger Nomenklatur dargestellt werden (z. B. „es“, „en“ oder "de") oder eine vierstellige Nomenklatur (z. B. "en-us", "es-es" oder „fr-ca“).

Entspricht das Medienmanifest einem anderen Sprachcodestandard, Die Empfänger-App muss alle eingehenden Anfragen in diesen Standard konvertieren. Diese Anfragen, z. B. Sprachbefehle, verwenden RFC 5646-Sprachcodes. Web Receiver Das SDK bietet ein Abfangende-EDIT_TRACKS_INFO, um die Anfragen in deinen Manifests:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
// intercept the EDIT_TRACKS_INFO request
playerManager.setMessageInterceptor(cast.framework.messages.MessageType.EDIT_TRACKS_INFO, request => {
  // write logic to convert language codes here
});
context.start();

Mit der API können Entwickler neue Untertitel-Tracks dynamisch hinzufügen, für verschiedene Sprachen und Out-of-Band-Tracks. der neue aktive Track sein:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {

    // Create text tracks object
    const textTracksManager = playerManager.getTextTracksManager();

    // Create track 1 for English text
    const track1 = textTracksManager.createTrack();
    track1.trackContentType = 'text/vtt';
    track1.trackContentId = 'http://example.com/en.vtt';
    track1.language = 'en';

    // Create track 2 for Spanish text
    const track2 = textTracksManager.createTrack();
    const track2Id = track2.trackId;
    track2.trackContentType = 'text/vtt';
    track2.trackContentId = 'http://example.com/spa.vtt';
    track2.language = 'spa';

    // Add tracks
    textTracksManager.addTracks([track1, track2]);

    // Set the first matching language text track to be active
    textTracksManager.setActiveByLanguage('en');
  });
context.start();

Bei der Wiedergabe von Werbeunterbrechungen hat ein beliebiger Texttrack, z. B. die Sprache, bevor eine Pause nach der Pause für denselben Content fortgesetzt wird, auch wenn der Anzeigen in einer anderen Sprache vorliegen.

Erzwungene Untertitel

Erzwungene Untertitel sind ein Text-Overlay, das angezeigt wird, damit der Zuschauer verstehen kann, wann eine andere Sprache verwendet wird, oder um Audioinhalte klarer zu formulieren. Im Gegensatz zu Untertiteln müssen Zuschauer keine erzwungenen Untertitel aktivieren, werden basierend auf den Audioeinstellungen des Zuschauers automatisch ausgewählt.

Wenn Sie Ihrer Cast App erzwungene Untertitel hinzufügen möchten, müssen Sie sie als Teil deines Manifests. Lege in deinem Manifest die Rolle des Titels auf forced-subtitle Sobald das Cask SDK diese Tracks erfasst, als Untertitel erzwingen. Der Absender muss nichts weiter tun, da das Cast SDK erzwungene und Untertitel getrennt. Das bedeutet, dass ein Zuschauer eine erzwungene Bildunterschrift auswählen.

Wenn Untertitel aktiviert sind, werden erzwungene Untertitel deaktiviert, um zu verhindern, Überschneidung der Untertitel. Wenn Untertitel deaktiviert sind und wenn Untertitel erzwungen werden im Manifest bereitgestellt werden, dann werden die erzwungenen Untertitel die bevorzugte Audiosprache des Zuschauers.