Utwory

Ś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.