HTML DOM Track オブジェクト:ウェブページのビデオテキストトラックの制御と操作
この記事では、HTML DOM の Track オブジェクトについて詳しく解説します。属性、メソッド、イベントなどを含め、開発者が JavaScript を使用してウェブページのビデオテキストトラックを制御および操作し、字幕、チャプターマーカー、音声解説などの機能を実現する方法を理解するのに役立ちます。
目次
- Track オブジェクトとは?
- Track オブジェクトのプロパティ
- Track オブジェクトのメソッド
- Track オブジェクトのイベント
- Track オブジェクトの使用シーン
- サンプルコード
- まとめ
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
-
Q: Track オブジェクトを使用して、ビデオの再生中に字幕の表示/非表示を切り替えるにはどうすればよいですか?
A: Track オブジェクトのtrack
プロパティを使用して、関連付けられたTextTrack
オブジェクトを取得します。次に、TextTrack
オブジェクトのmode
プロパティを "showing"、"hidden"、または "disabled" に設定して、字幕の表示/非表示を切り替えることができます。 -
Q: 複数の字幕トラックがある場合、JavaScript を使用してデフォルトの字幕トラックを設定するにはどうすればよいですか?
A: 各 Track オブジェクトのdefault
プロパティをtrue
に設定することで、デフォルトの字幕トラックを設定できます。デフォルトトラックは、ブラウザの設定やユーザーの明示的な選択よりも優先されます。 -
Q: Track オブジェクトを使用して、カスタムのチャプターマーカーを作成し、ユーザーがビデオの特定の時間にジャンプできるようにするにはどうすればよいですか?
A:kind
プロパティを "chapters" に設定して Track オブジェクトを作成し、チャプターマーカーのタイミングとラベルを含む WebVTT ファイルを指定します。ユーザーがチャプターマーカーをクリックすると、ビデオは指定された時間にジャンプします。