Parça sayısı

Ses parçaları

Web Alıcısı SDK'sı, ses parçası seçimi için parça seçimini basitleştiren ve kolaylaştıran bir AudioTracksManager sınıfı sağlayarak ad, URL ve dil gibi özelliklere daha fazla erişim ve daha iyi erişim sunar. Bu sınıf en iyi şekilde cast.framework.events.EventType.PLAYER_LOAD_COMPLETE etkinliğinin etkinlik işleyicisinde kullanılır.

API, etkin ses parçalarını sorgulamak ve seçmek için çeşitli yollar sunar. Aşağıda, bir parçanın kimliğini belirterek etkin olması için nasıl seçim yapılacağı gösterilmektedir:

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();

AudioTracksManager sınıfı bir yöntem de getActiveTrack() sağlar.

Aşağıda, belirli bir dil için (bu örnekte İngilizce) ilk ses parçasının nasıl seçileceğine dair bir örnek verilmiştir:

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();

AudioTracksManager sınıfı, belirtilen dildeki tüm parçaları döndüren bir yöntem de getTracksByLanguage(language) sağlar.

Ses dili kodu medya manifestinden alınır ve RFC 5646'ya uygun olmalıdır. Dil kodları, 2 karakterli terminolojide (ör. "es", "en" veya "de") veya 4 karakterden oluşan terminolojide ("en-us", "es-es" veya "fr-ca") sunulabilir.

Medya manifesti farklı bir dil kodu standardına uyuyorsa Web Alıcısı uygulamasının bunu bir RFC 5646 uyumlu dil koduna dönüştürmesi gerekir. Web Alıcısı SDK'sı, değişiklikleri yapmak için bir müdahaleci EDIT_AUDIO_TRACKS sağlar:

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();

Reklam araları oynatılırken reklam arası farklı bir dilde olsa bile, bir ara verilmeden önce dil gibi herhangi bir ses parçası seçimi devam eder.

Altyazılar

Web Alıcısı SDK'sı, altyazı seçimini belirlemek için parça seçimini basitleştiren ve kolaylaştıran TextTracksManager sınıfını sağlayarak size ad, URL ve dil gibi özelliklere daha fazla erişim ve daha iyi erişim sunar.

TextTracksManager sınıfı en iyi şekilde, cast.framework.events.EventType.PLAYER_LOAD_COMPLETE etkinliğinin etkinlik işleyicisinde kullanılır.

Web Alıcısı SDK'sında altyazı seçimi, SDK'nın diğer kısımlarıyla kolaylaştırılmış ve basitleştirilmiştir.

API; WebVTT, TTML ve CEA-608'in kontrolünü destekler.

TextTracksManager sınıfı, etkin olacak altyazı parçasını sorgulamanın ve seçmenin çeşitli yollarını sunar. Aşağıda, etkin olarak kullanılacak ilk parçanın kimliğini belirterek bir örnek verilmiştir:

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();

TextTracksManager sınıfı bir yöntem de getActiveTracks() sağlar.

Aşağıda, belirli bir dil için ilk metin parçasının nasıl seçileceğine dair bir örnek verilmiştir:

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();

TextTracksManager sınıfı, belirtilen dildeki tüm parçaları döndüren bir yöntem de getTracksByLanguage(language) sağlar.

Metin dili kodu medya manifestinden alınır ve RFC 5646'ya uygun olmalıdır. Dil kodları, 2 karakterli terminoloji ("es", "en" veya "de") veya 4 karakterli terminolojide ("en-us", "es-es" veya "fr-ca") sunulabilir.

Medya manifesti farklı bir dil kodu standardına uyuyorsa Web Alıcısı uygulamasının gelen istekleri bu standarda dönüştürmesi gerekir. Sesli komutlar gibi bu istekler RFC 5646 dil kodlarını kullanır. Web Alıcısı SDK'sı, istekleri manifestinizin standardına çevirmek için bir müdahaleci EDIT_TRACKS_INFO sağlar:

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();

API, geliştiricilerin farklı diller ve bant dışı parçalar için bu durumda dinamik olarak yeni altyazı parçaları eklemesine ve ardından yeni etkin kanal olarak bir parça seçmesine olanak tanır:

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();

Reklam araları oynatılırken reklam aralarından önce yapılan dil gibi herhangi bir metin parçası seçimi, reklamlar farklı bir dilde olsa bile aranın aynı molasından sonra devam eder.