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.
ウェブオーディオ API の MediaStreamAudioSourceNode()
コンストラクターは、指定された MediaStream
の最初の音声トラックを音源として用いる新しい MediaStreamAudioSourceNode
オブジェクトを作成して返します。
メモ: MediaStreamAudioSourceNode
を作成するもう一つの方法は、音声の取得元のストリームを指定して AudioContext.createMediaStreamSource()
メソッドを呼ぶことです。
構文
new MediaStreamAudioSourceNode(context, options)
引数
context
-
ノードを関連付ける音声コンテキストを表す
AudioContext
です。 options
-
MediaStreamAudioSourceNode
に持たせるプロパティを定義するオブジェクトです。mediaStream
-
必須のプロパティで、ノードが用いる音声の取得元となる
MediaStream
を指定します。
返値
指定されたストリームから音声を取得する音声ノードを表す新しい MediaStreamAudioSourceNode
オブジェクトを返します。
例外
InvalidStateError
DOMException
-
指定された
MediaStream
に音声トラックが無いとき投げられます。
例
この例では、getUserMedia()
を用いてユーザーのカメラにアクセスし、その MediaStream
から新しい MediaStreamAudioSourceNode
を作成します。
// 変数を定義する
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