MediaStreamTrackAudioSourceNode: MediaStreamTrackAudioSourceNode() コンストラクター

Web Audio APIMediaStreamTrackAudioSourceNode() コンストラクターは、オプションオブジェクトで指定された MediaStreamTrack から音声を取得する新しい MediaStreamTrackAudioSourceNode オブジェクトを生成して返します。

MediaStreamTrackAudioSourceNode を生成する別の方法は、音声の取得元とする MediaStreamTrack を指定して AudioContext.createMediaStreamTrackSource() メソッドを呼び出すことです。

構文

js
new MediaStreamTrackAudioSourceNode(context, options)

引数

context

このノードを関連付ける音声コンテキストを表す AudioContext です。

options

MediaStreamTrackAudioSourceNode に持たせる性質を定義するオブジェクトです。

mediaStreamTrack

このノードの出力とする音声のデータの取得元とする MediaStreamTrack です。

返値

メディアを指定のメディアトラックから取得する音声ノードを表す新しい MediaStreamTrackAudioSourceNode オブジェクトです。

例外

NotSupportedError DOMException

指定の contextAudioContext でないとき投げられます。

InvalidStateError DOMException

指定の MediaStreamTrack が音声トラックでない (すなわち、kind プロパティが audio でない) とき投げられます。

この例では、getUserMedia() を用いてユーザーのカメラにアクセスし、そのデバイスが提供する最初の音声トラックから新しい MediaStreamAudioSourceNode を生成します。

js
const audioCtx = new AudioContext();

if (navigator.mediaDevices.getUserMedia) {
  navigator.mediaDevices
    .getUserMedia({
      audio: true,
      video: false,
    })
    .then((stream) => {
      const options = {
        mediaStreamTrack: stream.getAudioTracks()[0],
      };

      const source = new MediaStreamTrackAudioSourceNode(audioCtx, options);
      source.connect(audioCtx.destination);
    })
    .catch((err) => {
      console.error(`以下の gUM エラーが発生しました: ${err}`);
    });
} else {
  console.log("このブラウザーは新しい getUserMedia に対応していません!");
}

仕様書

Specification
Web Audio API
# dom-mediastreamtrackaudiosourcenode-mediastreamtrackaudiosourcenode

ブラウザーの互換性

BCD tables only load in the browser