1. 開発者向けのウェブ技術
  2. Web API
  3. AudioContext
  4. createMediaStreamTrackSource()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

AudioContext: createMediaStreamTrackSource() メソッド

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

createMediaStreamTrackSource()AudioContext インターフェイスのメソッドで、指定された MediaStreamTrack からデータを受け取る音源を表す MediaStreamTrackAudioSourceNode を作成して返します。

このメソッドが createMediaStreamSource() と異なる点は、指定された MediaStream の中の id が辞書順(アルファベット順)で最初の音声トラックからデータを受け取る MediaStreamAudioSourceNode を作成する点です。

構文

js
createMediaStreamTrackSource(track)

引数

track

新しいノードのすべての音声データの取得元として使用する MediaStreamTrack です。

返値

指定の音声トラックから得られる音声データの取得元として働く MediaStreamTrackAudioSourceNode オブジェクトを返します。

この例では、ユーザーのマイクへのアクセスを要求するために getUserMedia() を使います。アクセスができるようになると、音声コンテキストを作成し、getUserMedia() が返したストリームの最初の音声トラックから音声を取得する MediaStreamTrackAudioSourceNodecreateMediaStreamTrackSource() により作成します。

そして、createBiquadFilter() により BiquadFilterNode を作成し、音源から流れてくる音声にローシェルフフィルターを適用するように意図通り設定します。すると、マイクからの出力が新しいバイクワッドフィルターに流れ、フィルターの出力が音声コンテキストの出力先 (destination) に順に流れるようになります。

js
navigator.mediaDevices
 .getUserMedia({ audio: true, video: false })
 .then((stream) => {
 audio.srcObject = stream;
 audio.onloadedmetadata = (e) => {
 audio.play();
 audio.muted = true;
 };
 const audioCtx = new AudioContext();
 const audioTracks = stream.getAudioTracks();
 const source = audioCtx.createMediaStreamTrackSource(audioTracks[0]);
 const biquadFilter = audioCtx.createBiquadFilter();
 biquadFilter.type = "lowshelf";
 biquadFilter.frequency.value = 3000;
 biquadFilter.gain.value = 20;
 source.connect(biquadFilter);
 biquadFilter.connect(audioCtx.destination);
 })
 .catch((err) => {
 // getUserMedia() のエラーを処理する
 });

仕様書

仕様書
Web Audio API
# dom-audiocontext-createmediastreamtracksource

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /