트랙

오디오 트랙

오디오 트랙 선택을 위해 Web Receiver SDK는 AudioTracksManager 드림 클래스로 트랙 선택을 간소화하고 간소화하여 더 많은 제어 기능을 제공합니다. 이름, URL, 언어와 같은 속성에 더 효과적으로 액세스할 수 있습니다 이 수업은 이벤트 핸들러에서 가장 잘 사용되는 것은 cast.framework.events.EventType.PLAYER_LOAD_COMPLETE 드림 이벤트를 처리합니다.

API는 활성 오디오 트랙을 쿼리하고 선택할 수 있는 다양한 방법을 제공합니다. 여기 는 ID를 지정하여 활성화할 트랙을 선택하는 방법의 예입니다.

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 클래스는 메서드도 제공합니다. getActiveTrack()

다음은 지정된 에 대한 첫 번째 오디오 트랙을 선택하는 방법의 예입니다. 언어(이 경우 영어):

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 클래스는 메서드도 제공합니다. getTracksByLanguage(language) - 지정된 언어의 모든 트랙을 반환합니다.

오디오 언어 코드는 미디어 매니페스트에서 가져오며 RFC 5646 언어 코드는 2자리 명명법으로 표현할 수 있습니다 (예: 'es', 'en' 또는 4자리 명명법 (예: 'en-us', 'es-es' 또는 'fr-ca')를 입력합니다.

미디어 매니페스트가 다른 언어 코드 표준을 따르는 경우 웹은 수신기 앱은 RFC 5646 준수 언어 코드로 변환해야 합니다. 웹 수신기 SDK는 이 작업을 실행할 인터셉터 EDIT_AUDIO_TRACKS를 제공합니다. 수정:

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

광고 시점을 통해 재생할 때 언어, 같은 콘텐츠의 광고 시점 이후에도 지속됩니다. 광고가 다른 언어로 되어 있는 경우

자막

자막 트랙 선택을 위해 Web Receiver SDK는 TextTracksManager 드림 클래스로 트랙 선택을 간소화하고 간소화하여 더 많은 제어 기능을 제공합니다. 이름, URL, 언어와 같은 속성에 더 효과적으로 액세스할 수 있습니다

TextTracksManager 클래스는 다음 항목의 이벤트 핸들러에서 사용하는 것이 가장 좋습니다. cast.framework.events.EventType.PLAYER_LOAD_COMPLETE 이벤트를 처리합니다.

Web Receiver SDK에서 자막 선택이 간소화되고 간소화되었습니다. 다른 부분과 연결할 수 있습니다

API는 WebVTT, TTML, CEA-608 제어를 지원합니다.

TextTracksManager 클래스는 닫힌 객체를 쿼리하고 선택하는 다양한 방법을 제공합니다. 활성화해야 합니다. 첫 번째 트랙을 선택하고 ID를 지정하여 활성화되도록 합니다.

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 클래스는 메서드도 제공합니다. getActiveTracks()

다음은 특정 언어:

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 클래스는 메서드도 제공합니다. getTracksByLanguage(language) - 지정된 언어의 모든 트랙을 반환합니다.

텍스트 언어 코드는 미디어 매니페스트에서 검색되며 RFC 5646 언어 코드는 2자리 명명법으로 표현할 수 있습니다 (예: 'es', 'en' 또는 4자리 명명법 (예: 'en-us', 'es-es' 또는 'fr-ca')를 입력합니다.

미디어 매니페스트가 다른 언어 코드 표준을 따르는 경우 웹은 수신기 앱은 수신되는 모든 요청을 해당 표준으로 변환해야 합니다. 이러한 요청은 RFC 5646 언어 코드를 사용합니다. 웹 수신기 SDK는 요청을 다음과 같이 변환하는 인터셉터 EDIT_TRACKS_INFO를 제공합니다. 매니페스트의 표준을 따릅니다.

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를 사용하면 개발자가 대역 외 트랙을 선택한 다음 원하는 트랙을 새 활성 트랙이어야 합니다.

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

광고 시점을 통해 재생할 때 언어와 같은 텍스트 트랙 선택 항목이 같은 콘텐츠의 광고 시점 이후에도 지속됩니다. 광고가 다른 언어로 되어 있는 경우

강제 자막

강제 자막 또는 강제 내러티브는 시청자가 대체 언어가 언제 사용되었는지 이해하거나 오디오를 명확히 하기 위해 이해할 수 있음 자막과 달리 시청자는 강제 자막을 사용 설정할 필요가 없습니다. 시청자의 오디오 선호도에 따라 자동으로 선택됩니다.

Cast 애플리케이션에 강제 자막을 추가하려면 매니페스트 파일에 있습니다 매니페스트에서 트랙의 역할을 forced-subtitle Cask SDK가 이러한 트랙을 선택하면 강제 자막으로 표시합니다. Cast SDK는 강제 자막과 자막을 분리합니다. 즉, 시청자는 자동 자막을 선택할 수 있습니다.

자막을 사용 설정하면 겹치지 않아야 합니다. 자막이 사용 중지된 경우 및 강제 자막인 경우 가 매니페스트에 제공된 다음 시청자의 오디오 언어 환경설정