Ścieżki audio
Do wyboru ścieżki audio pakiet Web Receiver SDK udostępnia
AudioTracksManager
zajęć, które upraszczają i upraszczają wybór ścieżek, dając Ci większą kontrolę
i lepszy dostęp do właściwości, takich jak nazwa, adres URL czy język. Te zajęcia są
jest najlepiej przystosowany do obsługi zdarzeń
cast.framework.events.EventType.PLAYER_LOAD_COMPLETE
.
Interfejs API udostępnia różne sposoby wysyłania zapytań i wybierania aktywnych ścieżek audio. Tutaj to przykład tego, jak wybrać ścieżkę jako aktywną, podając jej identyfikator:
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();
Klasa AudioTracksManager
udostępnia też metodę
getActiveTrack()
Oto przykład, jak wybrać pierwszą ścieżkę dźwiękową do określonego utworu język, w tym przypadku angielski:
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();
Klasa AudioTracksManager
udostępnia też metodę
getTracksByLanguage(language)
.
, która zwraca wszystkie ścieżki w wybranym języku.
Kod języka dźwięku jest pobierany z pliku manifestu multimediów i powinien występować RFC 5646. Kody języków mogą być podawane w formie dwuznakowej (np. "es", "pl" lub „de”) albo czteroznakowe (np. „en-us”, „es-es” lub „fr-ca”).
Jeśli plik manifestu multimedialnego jest zgodny z innym standardem kodu języka,
Aplikacja odbiornika musi przekonwertować ją na kod języka zgodny ze standardem RFC 5646. Sieć
Pakiet SDK odbiornika udostępnia element przechwytujący EDIT_AUDIO_TRACKS
, który ma wykonać
modyfikacje:
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();
Podczas odtwarzania w przerwach na reklamę wybrana ścieżka audio, np. język, wykonane przed przerwą i w tych samych treściach będą obowiązywać po jej zakończeniu, nawet jeśli reklamy są w innym języku.
Napisy
Aby wybrać ścieżkę napisów, pakiet SDK Web Receiver udostępnia
TextTracksManager
zajęć, które upraszczają i upraszczają wybór ścieżek, dając Ci większą kontrolę
i lepszy dostęp do właściwości, takich jak nazwa, adres URL czy język.
Klasy TextTracksManager
najlepiej jest używać w module obsługi zdarzeń w przypadku funkcji
cast.framework.events.EventType.PLAYER_LOAD_COMPLETE
.
.
Uprościliśmy i uprościliśmy wybór napisów w pakiecie SDK Web Receiver z innymi częściami pakietu SDK.
Interfejs API obsługuje sterowanie standardem WebVTT, TTML i CEA-608.
Klasa TextTracksManager
udostępnia różne sposoby wysyłania zapytań i wybierania zamkniętych
aby ścieżka z napisami była aktywna. Oto przykład, jak wybrać pierwszą ścieżkę dźwiękową
aby był aktywny, podając jego identyfikator:
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();
Klasa TextTracksManager
udostępnia też metodę
getActiveTracks()
Oto przykład, jak wybrać pierwszą ścieżkę tekstową dla język:
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();
Klasa TextTracksManager
udostępnia też metodę
getTracksByLanguage(language)
.
, która zwraca wszystkie ścieżki w wybranym języku.
Kod języka tekstu jest pobierany z pliku manifestu multimediów i powinno następować RFC 5646. Kody języków mogą być podawane w formie dwuznakowej (np. "es", "pl" lub „de”), lub czteroznakowe (np. „en-us”, „es-es” lub „fr-ca”).
Jeśli plik manifestu multimedialnego jest zgodny z innym standardem kodu języka,
Aplikacja odbiornika musi przekonwertować wszystkie żądania przychodzące na ten standard. Te
żądań, na przykład poleceń głosowych, używają kodów języków RFC 5646. Odbiornik internetowy
Pakiet SDK udostępnia element przechwytujący EDIT_TRACKS_INFO
, który tłumaczy żądania na
Standard pliku manifestu:
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();
Pozwala on programistom dynamicznie dodawać nowe ścieżki napisów. dla różnych języków i ścieżek spoza zakresu, a następnie wybierz ścieżkę nową aktywną ścieżką:
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();
Podczas odtwarzania przerw na reklamę dowolny tekst ścieżki tekstowej, np. język, przed przerwaniem trwa po przerwie w przypadku tych samych treści, nawet jeśli reklamy są w innym języku.
Wymuszone napisy
Napisy narzucone przez widzów to nakładka tekstowa, która jest wyświetlana, widz wie, kiedy używany jest alternatywny język lub aby wyjaśnić treść ścieżki dźwiękowej. W przeciwieństwie do napisów widz nie musi włączać osadzonych napisów, ponieważ są wybierane automatycznie na podstawie preferencji użytkownika dotyczących dźwięku.
Aby dodać wymuszone napisy do aplikacji Cast, musisz umieścić ją jako
pliku manifestu. W pliku manifestu ustaw rolę ścieżki na
forced-subtitle
Gdy pakiet SDK Cask wykryje te ścieżki, wykryje,
jako wymuszone napisy. Nadawca nie musi niczego robić, bo pakiet SDK Cast
oddzielić osadzone napisy. Oznacza to, że widz nie
nie można wybrać
wymuszonego napisu.
Gdy napisy są włączone, wymuszone napisy są wyłączone. nakładanie się napisów. Kiedy napisy są wyłączone i jeśli napisy są wymuszone zostaną podane w pliku manifestu, a wymuszone napisy będą wyświetlane na podstawie preferowany przez widza język ścieżki dźwiękowej.