Tracce audio
Per la selezione delle tracce audio, l'SDK WebRicevir fornisce una
AudioTracksManager
che semplifica e snellisce la selezione dei percorsi, offrendoti un maggiore controllo
e un migliore accesso a proprietà come nome, URL e lingua. Questo corso è
meglio utilizzato nel gestore di eventi
cast.framework.events.EventType.PLAYER_LOAD_COMPLETE
.
L'API offre vari modi per eseguire query e selezionare le tracce audio attive. Qui Ecco un esempio di come selezionare una traccia da attivare specificando l'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
fornisce anche un metodo
getActiveTrack()
Ecco un esempio di come selezionare la prima traccia audio di un in questo caso l'inglese:
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
fornisce anche un metodo
getTracksByLanguage(language)
che restituisce tutte le tracce per la lingua specificata.
Il codice della lingua audio viene recuperato dal file manifest multimediale e deve seguire RFC 5646. I codici lingua possono essere presentati con una nomenclatura a due caratteri (come "es", "it" o "de") o una nomenclatura a quattro caratteri (ad es. "en-us", "es-es" o "fr-ca").
Se il file manifest multimediale segue uno standard di codice lingua diverso,
L'app del ricevitore deve convertirla in un codice lingua conforme a RFC 5646. A rete
L'SDK ricevitore fornisce un intercettore EDIT_AUDIO_TRACKS
da eseguire
modifiche:
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();
Durante la riproduzione delle interruzioni pubblicitarie, qualsiasi traccia audio selezionata, come lingua, effettuate prima di un'interruzione; persisterà dopo l'interruzione per gli stessi contenuti, anche se gli annunci sono in una lingua diversa.
Sottotitoli codificati
Per la selezione delle tracce di sottotitolaggio codificato, l'SDK WebRicevir fornisce il
TextTracksManager
che semplifica e snellisce la selezione dei percorsi, offrendoti un maggiore controllo
e un migliore accesso alle proprietà, come nome, URL e lingua.
La classe TextTracksManager
viene utilizzata al meglio nel gestore di eventi per
cast.framework.events.EventType.PLAYER_LOAD_COMPLETE
.
La selezione dei sottotitoli codificati nell'SDK Web receiver è più semplice e intuitiva con altre parti dell'SDK.
L'API supporta il controllo di WebVTT, TCFL e CEA-608.
La classe TextTracksManager
offre vari modi per eseguire query e selezionare un modello
la traccia sottotitoli sia attiva. Ecco un esempio di come selezionare la prima traccia
ad essere attivo specificandone l'ID:
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
fornisce anche un metodo
getActiveTracks()
Ecco un esempio di come selezionare la prima traccia di testo per una specifica lingua:
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
fornisce anche un metodo
getTracksByLanguage(language)
che restituisce tutte le tracce per la lingua specificata.
Il codice lingua del testo viene recuperato dal manifest multimediale e deve seguire RFC 5646. I codici lingua possono essere presentati con una nomenclatura a due caratteri (come "es", "it" o "de") o una nomenclatura di quattro caratteri (ad esempio "en-us", "es-es" o "fr-ca").
Se il file manifest multimediale segue uno standard di codice lingua diverso,
L'app ricevente deve convertire tutte le richieste in entrata in quello standard. Questi
come i comandi vocali, utilizzano i codici lingua RFC 5646. Il ricevitore web
L'SDK fornisce un intercettore EDIT_TRACKS_INFO
per tradurre le richieste nella tua
del file manifest:
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 consente a uno sviluppatore di aggiungere dinamicamente nuove tracce di sottotitoli codificati, per diverse lingue e tracce fuori banda, quindi seleziona una traccia essere la nuova traccia attiva:
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();
Durante la riproduzione delle interruzioni pubblicitarie, qualsiasi traccia di testo selezionata, ad esempio la lingua, prima che un'interruzione venga riportata dopo l'interruzione per gli stessi contenuti, anche se gli annunci siano in una lingua diversa.
Sottotitoli codificati forzati
I sottotitoli codificati forzati o la narrazione forzata sono overlay di testo che vengono visualizzati in modo che lo spettatore può capire quando viene utilizzata una lingua alternativa o per chiarire l'audio. A differenza dei sottotitoli codificati, lo spettatore non ha bisogno di attivare i sottotitoli forzati mentre vengono selezionati automaticamente in base alle preferenze audio dello spettatore.
Per aggiungere sottotitoli forzati all'applicazione Cast, devi includerli come
parte del file manifest. Nel file manifest, imposta il ruolo della traccia su
forced-subtitle
. Quando l'SDK Cask raccoglie queste tracce, identificherà
come sottotitoli forzati. Non è necessario alcun intervento da parte del mittente, in quanto l'SDK Cast
separando i sottotitoli forzati
da quelli forzati. Ciò significa che uno spettatore non
poter selezionare una didascalia forzata.
Quando i sottotitoli codificati sono attivati, i sottotitoli forzati sono disattivati per evitare sovrapposizione di didascalie. Quando i sottotitoli codificati sono disattivati e se forzati sono forniti nel file manifest, quindi vengono visualizzati i sottotitoli forzati in base la preferenza della lingua per l'audio dello spettatore.