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

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

ウェブオーディオ APIMediaStreamAudioSourceNode() コンストラクターは、指定された MediaStream の最初の音声トラックを音源として用いる新しい MediaStreamAudioSourceNode オブジェクトを作成して返します。

メモ: MediaStreamAudioSourceNode を作成するもう一つの方法は、音声の取得元のストリームを指定して AudioContext.createMediaStreamSource() メソッドを呼ぶことです。

構文

js
new MediaStreamAudioSourceNode(context, options)

引数

context

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

options

MediaStreamAudioSourceNode に持たせるプロパティを定義するオブジェクトです。

mediaStream

必須のプロパティで、ノードが用いる音声の取得元となる MediaStream を指定します。

返値

指定されたストリームから音声を取得する音声ノードを表す新しい MediaStreamAudioSourceNode オブジェクトを返します。

例外

InvalidStateError DOMException

指定された MediaStream に音声トラックが無いとき投げられます。

この例では、getUserMedia() を用いてユーザーのカメラにアクセスし、その MediaStream から新しい MediaStreamAudioSourceNode を作成します。

js
// 変数を定義する
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// getUserMedia によりストリームを取得し、
// MediaStreamAudioSourceNode に入れる
if (navigator.mediaDevices.getUserMedia) {
  navigator.mediaDevices
    .getUserMedia(
      // constraints: このアプリケーションで音声と映像を用いるか
      {
        audio: true,
        video: false,
      },
    )
    .then((stream) => {
      const options = {
        mediaStream: stream,
      };

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

仕様書

Specification
Web Audio API
# dom-mediastreamaudiosourcenode-mediastreamaudiosourcenode

ブラウザーの互換性

BCD tables only load in the browser