Parça sayısı

Ses parçaları

Ses parçası seçimi için Web Receiver SDK, AudioTracksManager parça seçimini basitleştirip sadeleştiren, size daha fazla kontrol olanağı sunan sınıf ve ad, URL ve dil gibi özelliklere daha iyi erişim. Bu sınıf kullanılan en iyi uygulama, cast.framework.events.EventType.PLAYER_LOAD_COMPLETE unutmayın.

API, etkin ses parçalarını sorgulamak ve seçmek için çeşitli yöntemler sunar. Burası kimliğini belirterek etkin olacak bir parçanın nasıl seçileceğine ilişkin bir örnektir:

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ı ayrıca bir yöntem sağlar. getActiveTrack()

Belirli bir ses parçası için ilk ses parçasının nasıl seçileceğine dair bir örnek dil, bu örnekte İngilizce:

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ı ayrıca bir yöntem sağlar. getTracksByLanguage(language) belirtilen dil için tüm parçaları döndüren bir komut dosyası oluşturun.

Ses dili kodu medya manifestinden alınır ve şuna uygun olmalıdır: RFC 5646. Dil kodları, 2 karakterlik bir terminolojiyle (örneğin, "en", "en" veya "de") ya da 4 karakterlik bir terminoloji (örneğin, "en-us", "es-es" veya "fr-ca").

Medya manifesti farklı bir dil kodu standardını izlerse Web Alıcı uygulamanın, bunu RFC 5646 uyumlu dil koduna dönüştürmesi gerekir. Ağ Alıcı SDK, gerçekleştirilmesi için EDIT_AUDIO_TRACKS önleyicisi sağlar değişiklikler:

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 dil, dil gibi ses parçası seçimleri, aradan önce oluşturulan tüm içerikler, aynı içerikteki aradan sonra da devam eder. reklamlar farklı bir dildedir.

Altyazılar

Altyazı parçası seçimi için Web Receiver SDK, TextTracksManager parça seçimini basitleştirip sadeleştiren, size daha fazla kontrol olanağı sunan sınıf ve ad, URL ve dil gibi özelliklere daha iyi erişim.

TextTracksManager sınıfının en iyi kullanım alanı cast.framework.events.EventType.PLAYER_LOAD_COMPLETE unutmayın.

Web Receiver SDK'da altyazı seçimi basitleştirilmiştir ve kolaylaştırılmıştır SDK'nın diğer bölümleriyle uyumlu olmalıdır.

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

TextTracksManager sınıfı, kapalı bir alanı sorgulamak ve seçmek için çeşitli yollar sunar. altyazı parçasının etkin olması gerekir. İlk parçanın nasıl seçileceğine dair bir örnek değerini belirterek etkin olmalıdır:

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ı ayrıca bir yöntem sağlar. getActiveTracks()

Belirli bir için ilk metin parçasının nasıl seçileceğine dair bir örnek dil:

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ı ayrıca bir yöntem sağlar. getTracksByLanguage(language) belirtilen dil için tüm parçaları döndüren bir komut dosyası oluşturun.

Metin dili kodu medya manifestinden alınır ve şuna uygun olmalıdır: RFC 5646. Dil kodları, 2 karakterlik bir terminolojiyle (örneğin, "en", "en" veya "de") ya da 4 karakterlik bir terminoloji ("en-us", "es-es" veya "fr-ca").

Medya manifesti farklı bir dil kodu standardını izlerse Web Alıcı uygulamanın gelen istekleri bu standarda dönüştürmesi gerekir. Bu istekleri (ör. sesli komutlar) RFC 5646 dil kodlarını kullanır. Web Alıcısı SDK, istekleri web sitenize doğru çevirebilmek için EDIT_TRACKS_INFO manifesto standardını kullanın:

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 dinamik olarak yeni altyazı kanalları eklemelerine olanak tanır. bant dışı parçalar için uygun biçimi seçin ve ardından bir parçayı yeni etkin parça olmalıdı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 dil gibi herhangi bir metin parçası seçimi yapılır. önce bir ara devam eder. Bu, aynı içerikteki aradan sonra da devam eder. farklı bir dilde olduğundan emin olun.

Zorunlu altyazılar

Zorunlu altyazılar veya zorunlu anlatım, izleyici, alternatif dilin ne zaman kullanıldığını anlayabilir veya sesi netleştirebilir. Altyazıların aksine, izleyicinin izleyicinin ses tercihlerine göre otomatik olarak seçilir.

Cast uygulamanıza zorunlu altyazı eklemek için bir kısmını kapatabilirsiniz. Manifest'inizde, kanalın rolünü şu şekilde ayarlayın: forced-subtitle Cask SDK bu kanalları aldığında, zorunlu altyazı olarak ayarlayabilirsiniz. Cast SDK'sı şu nedenle herhangi bir gönderen işlemi yapmanıza gerek yoktur: altyazıları ayırın. Bu, izleyicinin zorunlu altyazı seçebileceksiniz.

Altyazılar etkinleştirildiğinde, altyazıların veya üst üste bindirilir. Altyazılar kapatıldığında ve zorunlu altyazı olduğunda sağlandığı andan itibaren zorunlu kılınan altyazılar, İzleyicinin seslendirme dili tercihini belirleyebilirsiniz.