MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

AudioContext.createChannelMerger()

AudioContextインターフェースのcreateChannelMerger()メソッドは、複数のオーディオストリームを1つに混合するChannelMergerNodeを生成します。

構文

var audioCtx = new AudioContext();
var merger = audioCtx.createChannelMerger(numberOfInputs);

引数

numberOfInputs
入力オーディオストリームのチャンネルの数。指定がない場合は6になる。

戻り値

ChannelMergerNode

この例ではステレオトラックを分け、左右のチャンネルをそれぞれ別に処理する方法を示しています。これを使うためには、AudioNode.connect(AudioNode)メソッドの2番目と3番目の引数を使い、接続元と接続先のチャンネルの番号を指定する必要があります。

var ac = new AudioContext();
ac.decodeAudioData(someStereoBuffer, function(data) {
 var source = ac.createBufferSource();
 source.buffer = data;
 var splitter = ac.createChannelSplitter(2);
 source.connect(splitter);
 var merger = ac.createChannelMerger(2);

 // 左チャンネルのボリュームのみ小さくする
 var gain = ac.createGain();
 gain.value = 0.5;
 splitter.connect(gain, 0);

 // splitterをmergerの2番目の入力にして戻す
 // ここではチャンネルを入れ替えることで、ステレオ音声の左右を逆にしている
 gain.connect(merger, 0, 1);
 splitter.connect(merger, 1, 0);

 var dest = ac.createMediaStreamDestination();

 // ChannelMergerNodeを使ったのでステレオのMediaStreamとなった
 // webオーディオグラフのWebRTCやMediaRecorderなどに渡す
 merger.connect(dest);
});

仕様

Specification Status Comment
Web Audio API
The definition of 'createChannelMerger()' in that specification.
草案  

ブラウザ互換性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit 25.0 (25.0)  未サポート 15.0webkit
22 (unprefixed)
6.0webkit
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? 26.0 1.2 ? ? ? 33.0

参照

ドキュメントのタグと貢献者

 このページの貢献者: maruhiro
 最終更新者: maruhiro,