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.