Pistes audio
Pour la sélection d'une piste audio, le SDK Web Receiver fournit une
AudioTracksManager
qui simplifie et rationalise la sélection des pistes, ce qui vous donne plus de contrôle
et un meilleur accès aux propriétés, telles que le nom, l'URL et la langue. Ce cours est
mieux utilisé dans le gestionnaire d'événements
cast.framework.events.EventType.PLAYER_LOAD_COMPLETE
.
L'API propose plusieurs méthodes pour interroger et sélectionner les pistes audio actives. Ici, Voici un exemple de procédure à suivre pour activer un canal en spécifiant son 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();
La classe AudioTracksManager
fournit également une méthode
getActiveTrack()
Voici un exemple illustrant comment sélectionner la première piste audio d'une (ici l'anglais) :
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();
La classe AudioTracksManager
fournit également une méthode
getTracksByLanguage(language)
qui renvoie toutes les pistes pour la langue spécifiée.
Le code de langue de l'audio est extrait du fichier manifeste multimédia et doit suivre RFC 5646. Les codes de langue peuvent être présentés sous forme de nomenclature à deux caractères (par exemple, "es", "en" ou "de"), ou d'une nomenclature à 4 caractères (par exemple, "en-us", "es-es" ou "fr-ca").
Si le fichier manifeste multimédia suit une norme de code de langue différente,
L'application réceptrice doit la convertir en un code de langue conforme à la norme RFC 5646. Web
Le SDK récepteur fournit un EDIT_AUDIO_TRACKS
d'intercepteur pour effectuer
modifications:
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();
Lors de la lecture d'une coupure publicitaire, toute piste audio sélectionnée (langue, sont conservés avant la coupure publicitaire pour le même contenu, même si si les annonces sont dans une autre langue.
Sous-titres
Pour la sélection d'une piste de sous-titres, le SDK Web Receiver fournit le paramètre
TextTracksManager
qui simplifie et rationalise la sélection des pistes, ce qui vous donne plus de contrôle
et un meilleur accès aux propriétés, telles que le nom, l'URL et la langue.
Il est préférable d'utiliser la classe TextTracksManager
dans le gestionnaire d'événements pour
cast.framework.events.EventType.PLAYER_LOAD_COMPLETE
.
La sélection de sous-titres dans le SDK Web Receiver est simplifiée et optimisée avec d'autres parties du SDK.
L'API prend en charge le contrôle de WebVTT, TTML et CEA-608.
La classe TextTracksManager
propose plusieurs façons d'interroger et de sélectionner un objet fermé
la piste de sous-titres doit être active. Voici un exemple illustrant comment sélectionner la première piste
en indiquant son identifiant:
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();
La classe TextTracksManager
fournit également une méthode
getActiveTracks()
Voici un exemple illustrant comment sélectionner la première piste de texte pour un élément langue:
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();
La classe TextTracksManager
fournit également une méthode
getTracksByLanguage(language)
qui renvoie toutes les pistes pour la langue spécifiée.
Le code de langue du texte est extrait du fichier manifeste multimédia et doit suivre RFC 5646. Les codes de langue peuvent être présentés sous forme de nomenclature à deux caractères (par exemple, "es", "en" ou "de"), ou d'une nomenclature à 4 caractères (par exemple, "en-us", "es-es" ou "fr-ca").
Si le fichier manifeste multimédia suit une norme de code de langue différente,
L'application réceptrice doit convertir toutes les requêtes entrantes vers cette norme. Ces
telles que les commandes vocales, utilisent les codes de langue RFC 5646. Web Receiver
Le SDK fournit un EDIT_TRACKS_INFO
d'intercepteur pour traduire les requêtes dans votre
standard du fichier manifeste:
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();
L'API permet à un développeur d'ajouter dynamiquement de nouvelles pistes de sous-titres. pour différentes langues et pistes externes, puis sélectionnez une piste le nouveau canal actif:
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();
Lors de la lecture d'une coupure publicitaire, toute sélection de piste textuelle (langue, par exemple) avant la coupure continue d'être conservée pour le même contenu, même si sont diffusées dans une autre langue.
Sous-titres forcés
Les légendes ou récits forcés sont des éléments textuels superposés qui s'affichent le spectateur peut comprendre quand une autre langue est utilisée ou pour clarifier l'audio. Contrairement aux sous-titres, les spectateurs n'ont pas besoin d'activer les sous-titres forcés, sont automatiquement sélectionnés en fonction des préférences audio de l'internaute.
Pour ajouter des sous-titres forcés à votre application Cast, vous devez les inclure en tant que
de votre fichier manifeste. Dans votre fichier manifeste, définissez le rôle de la piste sur
forced-subtitle
Lorsque le SDK Cask récupère ces pistes, il identifie
comme des sous-titres forcés. Aucune tâche n'est requise pour l'expéditeur, car le SDK Cast
séparer les sous-titres forcés et les sous-titres. Cela signifie qu'un spectateur
les sous-titres forcés.
Lorsque les sous-titres sont activés, ils sont désactivés pour empêcher les sous-titres se chevauchent. Lorsque les sous-titres sont désactivés et s'ils sont forcés sont fournies dans le fichier manifeste, les sous-titres forcés sont affichés en fonction la langue audio préférée du spectateur.