AudioTrack

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

プロパティ

enabled
音声トラックの音を有効にするかどうかを制御する Boolean の値。この値を false に設定すると、トラックの音声がミュートになります。
id 読取専用
メディア内のトラックを一意に識別する DOMString。 この ID は、AudioTrackList.getTrackById() を呼び出すことによって、音声トラックリスト内の特定のトラックを見つけるために使用できます。 メディアが Media Fragments URI 仕様その日本語訳)に従ってメディアフラグメントによるシークをサポートしている場合は、ID を URL のフラグメント部分として使用することもできます。
kind 読取専用
トラックが属するカテゴリを指定する DOMString。 例えば、メイン音声トラックは kind"main" を持ちます。
label 読取専用
トラックに人間が読めるラベルを提供する DOMString。 例えば、映画の音声解説トラックには、"監督 John Q. Public と俳優 John Doe と Jane Eod による解説" という label が付いています。 ラベルが指定されていない場合、この文字列は空です。
language 読取専用
音声トラックの主要言語を指定する DOMString、または不明の場合は空の文字列。 言語は、"en-US""pt-BR" などの BCP 47(RFC 5646)言語コードで指定されています。
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 の音声トラックの配列が含まれ、各エントリにはトラックの idkindlabel が含まれます。

仕様

仕様 状態 コメント
HTML Living Standard
AudioTrack の定義
現行の標準  
HTML5
AudioTrack の定義
勧告  

ブラウザーの互換性

BCD tables only load in the browser