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.