HTML DOM track オブジェクト

HTML DOM Track オブジェクト:ウェブページのビデオテキストトラックの制御と操作

この記事では、HTML DOM の Track オブジェクトについて詳しく解説します。属性、メソッド、イベントなどを含め、開発者が JavaScript を使用してウェブページのビデオテキストトラックを制御および操作し、字幕、チャプターマーカー、音声解説などの機能を実現する方法を理解するのに役立ちます。

目次

  1. Track オブジェクトとは?
  2. Track オブジェクトのプロパティ
  3. Track オブジェクトのメソッド
  4. Track オブジェクトのイベント
  5. Track オブジェクトの使用シーン
  6. サンプルコード
  7. まとめ

1. Track オブジェクトとは?

Track オブジェクトは、<track>要素を表します。この要素は、HTML の <video>要素に関連付けられており、字幕、チャプターマーカー、音声解説などの外部タイミングテキストトラックを指定するために使用されます。

JavaScript の HTMLTrackElement インターフェースを使用して、Track オブジェクトにアクセスし、操作することができます。

2. Track オブジェクトのプロパティ

Track オブジェクトには、次のようなプロパティがあります。

プロパティ 説明
kind トラックの種類を取得します。例えば、"subtitles"、"captions"、"chapters"、"metadata"、"descriptions" などです。
src トラックのアドレスを取得または設定します。
srclang トラックの言語コードを取得または設定します。
label トラックのラベルを取得または設定します。これは、ユーザーインターフェースでトラックを識別するために使用されます。
default そのトラックがデフォルトトラックかどうかを示します。
readyState トラックの読み込み状態を取得します。例えば、"NONE"、"LOADING"、"LOADED"、"ERROR" などです。
track トラックに関連付けられた TextTrack オブジェクトを取得します。これは、テキストトラックデータにアクセスし、操作するために使用されます。

3. Track オブジェクトのメソッド

Track オブジェクトは、独自のメソッドを定義していませんが、親インターフェースである HTMLElement から継承したプロパティやメソッドを使用することができます。

4. Track オブジェクトのイベント

Track オブジェクトでは、次のイベントが発生します。

イベント 説明
load トラックが正常に読み込まれたときに発生します。
error トラックの読み込みに失敗したときに発生します。

5. Track オブジェクトの使用シーン

Track オブジェクトは、次のような場合に使用できます。

  • 字幕の追加: ビデオに多言語字幕を追加して、アクセシビリティと国際化を向上させます。
  • チャプターマーカーの作成: 長いビデオを複数のチャプターに分割して、ユーザーが興味のある部分にすばやくジャンプできるようにします。
  • 音声解説の提供: 視覚障碍者のために、ビデオコンテンツの音声解説を提供して、インクルーシブなビデオを実現します。

6. サンプルコード

JavaScript を使用して Track オブジェクトを取得し、そのプロパティにアクセスし、イベントをリッスンする方法の例を次に示します。

<video id="myVideo" width="640" height="360" controls>
  <source src="myVideo.mp4" type="video/mp4">
  <track kind="subtitles" src="subtitles_ja.vtt" srclang="ja" label="日本語">
  <track kind="subtitles" src="subtitles_en.vtt" srclang="en" label="英語">
</video>

<script>
  const video = document.getElementById('myVideo');
  const tracks = video.textTracks;

  // 最初のトラックを取得します
  const firstTrack = tracks[0];

  // トラックのプロパティを表示します
  console.log('種類:', firstTrack.kind);
  console.log('ソース:', firstTrack.src);
  console.log('言語:', firstTrack.srclang);
  console.log('ラベル:', firstTrack.label);

  // トラックの読み込みが完了したときにメッセージを表示します
  firstTrack.addEventListener('load', () => {
    console.log('トラックが読み込まれました。');
  });
</script>

7. まとめ

HTML DOM の Track オブジェクトは、開発者がウェブページのビデオテキストトラックを簡単に制御および操作できるようにする強力なツールを提供します。これにより、豊富なビデオ機能を実装し、ユーザーエクスペリエンスを向上させることができます。

関連する QA

  1. Q: Track オブジェクトを使用して、ビデオの再生中に字幕の表示/非表示を切り替えるにはどうすればよいですか?
    A: Track オブジェクトの track プロパティを使用して、関連付けられた TextTrack オブジェクトを取得します。次に、TextTrack オブジェクトの mode プロパティを "showing"、"hidden"、または "disabled" に設定して、字幕の表示/非表示を切り替えることができます。
  2. Q: 複数の字幕トラックがある場合、JavaScript を使用してデフォルトの字幕トラックを設定するにはどうすればよいですか?
    A: 各 Track オブジェクトの default プロパティを true に設定することで、デフォルトの字幕トラックを設定できます。デフォルトトラックは、ブラウザの設定やユーザーの明示的な選択よりも優先されます。
  3. Q: Track オブジェクトを使用して、カスタムのチャプターマーカーを作成し、ユーザーがビデオの特定の時間にジャンプできるようにするにはどうすればよいですか?
    A: kind プロパティを "chapters" に設定して Track オブジェクトを作成し、チャプターマーカーのタイミングとラベルを含む WebVTT ファイルを指定します。ユーザーがチャプターマーカーをクリックすると、ビデオは指定された時間にジャンプします。