DOM

インターフェイス

AudioTrack インターフェイス

  編集:2022.04.01 by T.A.

MS

このインターフェイスは、HTML のメディア要素(<audio> または <video>)の1つからの単一の音声トラックを表します。AudioTrack オブジェクトにアクセスする最も一般的な用途は、トラックをミュートおよびミュート解除するためにその enabled プロパティを切り替えることです。

プロパティ
AudioTrack.enabled
音声トラックの音を有効にするかどうかを制御する Boolean の値。この値を false に設定すると、トラックの音声がミュートになります。
AudioTrack.id 読取専用
メディア内のトラックを一意に識別する DOMString。 この ID は、AudioTrackList.getTrackById() を呼び出すことによって、音声トラックリスト内の特定のトラックを見つけるために使用できます。メディアが Media Fragments URI 仕様(その日本語訳)に従ってメディア フラグメントによるシークをサポートしている場合は、ID を URL のフラグメント部分として使用することもできます。
AudioTrack.kind 読取専用
トラックが属するカテゴリを指定する DOMString。例えば、メイン音声トラックは kind に "main" を持ちます。
AudioTrack.label 読取専用
トラックに人間が読めるラベルを提供する DOMString。例えば、映画の音声解説トラックには、"監督 John Q. Public と俳優 John Doe と Jane Eod による解説" という label が付いています。

ラベルが指定されていない場合、この文字列は空です。

AudioTrack.language 読取専用
音声トラックの主要言語を指定する DOMString、または不明の場合は空の文字列。 言語は、"en-US" や "pt-BR" などの BCP 47(RFC 5646)言語コードで指定されています。
AudioTrack.sourceBuffer 読取専用
トラックを作成した SourceBuffer。トラックが SourceBuffer によって作成されなかった場合、または SourceBuffer がその親メディア ソースの MediaSource.sourceBuffers 属性から取り除かれた場合は、null を返します。
使用上の注意

特定のメディア要素の AudioTrack を取得するには、その要素の audioTracks プロパティを使用します。このプロパティは、メディアに含まれる個々のトラックを取得できる AudioTrackList オブジェクトを返します。

var el = document.querySelector("video");
var tracks = el.audioTracks;

その後、配列の構文または forEach() などの関数を使用して、メディアの個々のトラックにアクセスできます。

この最初の例は、メディア上の最初の音声トラックを取得します。

var firstTrack = tracks[0];

次の例では、メディアのすべての音声トラックをスキャンして、(変数 userLanguage から取得した)ユーザーの優先言語のものを有効にし、それ以外を無効にします。

tracks.forEach(function(track) {
  if (track.language === userLanguage) {
    track.enabled = true;
  } else {
    track.enabled = false;
  }
});

language は標準(RFC 5646)形式です。例えば、アメリカ英語の場合、これは "en-US" になります。

この例では、指定されたメディア要素の音声トラックを選択するためにユーザー インターフェイスで使用される可能性のあるトラックの kind とラベルの配列を返します。リストは特定の kind のトラックのみを通過させるようにフィルタされます。
function getTrackList(el) {
  var trackList = [];
  const wantedKinds = [
    "main", "alternative", "main-desc", "translation", "commentary"
  ];

  el.audioTracks.forEach(function(track) {
    if (wantedKinds.includes(track.kind)) {
      trackList.push({
        id: track.id,
        kind: track.kind,
        label: track.label
      });
    }
  });
  return trackList;
}

結果の trackList には、wantKinds 配列のいずれかの kind の音声トラックの配列が含まれ、各エントリにはトラックの id、kind、label が含まれます。


テスト
HTML:

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



スクリプト:


スクリプト:



表示内容:
表示内容: