DOM

インターフェイス

TrackEvent インターフェイス

  編集:2022.04.02 by T.A.

MS

HTML DOM 仕様の一部である TrackEvent インターフェイスは、HTML メディア要素で使用可能なトラックのセットに対する変更を表すイベントに使用されます。これらのイベントは addtrack と removetrack です。TrackEvent を RTCPeerConnection の一部であるトラックに使用される RTCTrackEvent インターフェイスと混同しないでください。

TrackEvent に基づくイベントは、常に次のメディア トラック リストの種類のいずれかに送信されます。

コンストラクタ
new TrackEvent()
指定されたイベント タイプとオプションの追加プロパティで、新しい TrackEvent オブジェクトを作成して初期化します。
プロパティ

TrackEvent は Event に基づいているため、Event のプロパティは TrackEvent オブジェクトでも利用できます。

TrackEvent.track 読取専用
イベントが参照している DOM のトラック オブジェクト。null でない場合、これは常にメディア トラックの種類のうちの1つのオブジェクト(AudioTrack、VideoTrack、または TextTrack)です。
メソッド

TrackEvent には独自のメソッドはありません。しかし、それは Event に基づいているので、Event オブジェクトで利用可能なメソッドを提供します。

この例では、handleTrackEvent() 関数を設定します。この関数は、文書内で見つかった最初の <video> 要素の addtrack イベントまたは removetrack イベントに対して呼び出されます。
var videoElem = document.querySelector("video");

videoElem.videoTracks.addEventListener("addtrack", handleTrackEvent, false);
videoElem.videoTracks.addEventListener("removetrack", handleTrackEvent, false);
videoElem.audioTracks.addEventListener("addtrack", handleTrackEvent, false);
videoElem.audioTracks.addEventListener("removetrack", handleTrackEvent, false);
videoElem.textTracks.addEventListener("addtrack", handleTrackEvent, false);
videoElem.textTracks.addEventListener("removetrack", handleTrackEvent, false);

function handleTrackEvent(event) {
  var trackKind;

  if (event.target instanceof(VideoTrackList)) {
    trackKind = "動画";
  } else if (event.target instanceof(AudioTrackList)) {
    trackKind = "音声";
  } else if (event.target instanceof(TextTrackList)) {
    trackKind = "テキスト";
  } else {
    trackKind = "不明な";
  }

  switch(event.type) {
    case "addtrack":
      console.log(trackKind + "トラックが追加されました。");
      break;
    case "removetrack":
      console.log(trackKind + "トラックが取り除かれました。");
      break;
  }
}

イベントハンドラーは、JavaScript の instanceof 演算子を使用してイベントが発生したトラックの種類を判断し、それがどの種類のトラックであるか、および要素に追加されているのか、要素から取り除かれているのかを示すメッセージをコンソールに出力します。


テスト
HTML:

ここに表示
スクリプト組み込み:



スクリプト:


スクリプト:



表示内容:
表示内容: