トラック

音声トラック

音声トラック選択については、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」「de」など)、または 4 文字の命名法(「en-us」、「es-es」など) 「fr-ca」)を入力します。

メディア マニフェストが異なる言語コード標準に従っている場合、ウェブは レシーバー アプリはこれを RFC 5646 準拠の言語コードに変換する必要があります。ウェブ Receiver 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()

特定のテキスト トラックの最初のテキスト トラックを選択する方法の例を次に示します。 language:

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」「de」など)、または 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();

ミッドロール挿入点の再生中に、言語などのテキスト トラックが選択されたときに、 たとえ 表示言語が異なります。

強制字幕

強制字幕や強制ナラティブは、テキスト オーバーレイで、 代替言語が使われている場合、または音声を明確に伝えるために、視聴者が理解できるようにします。 字幕とは異なり、視聴者に強制字幕を有効にする必要はありません。 視聴者の音声設定に基づいて自動的に選択されます。

キャスト アプリに強制字幕を追加するには、 指定することもできます。マニフェストで、トラックのロールを forced-subtitle。Cask SDK はこれらのトラックをピックアップすると、 自動字幕起こしとして使用できます。Cast SDK は配信設定に応じて適切に動作するため、送信側の作業は必要ありません。 自動字幕起こしと区別できるようにしていますつまり 視聴者は 強制字幕を選択できるようになります。

字幕を有効にすると、自動字幕起こしは無効になり、 検出できます。自動字幕起こしがオフのとき、自動字幕起こし 指定されている場合、自動字幕起こしは基準に基づいて表示されます。 視聴者の音声の言語設定に応じて調整します。