--- title: AudioContext.createChannelMerger() slug: Web/API/BaseAudioContext/createChannelMerger translation_of: Web/API/BaseAudioContext/createChannelMerger original_slug: Web/API/AudioContext/createChannelMerger ---
{{ APIRef("Web Audio API") }}
{{ domxref("AudioContext") }}インターフェースのcreateChannelMerger()メソッドは、複数のオーディオストリームを1つに混合する{{domxref("ChannelMergerNode")}}を生成します。
var audioCtx = new AudioContext(); var merger = audioCtx.createChannelMerger(numberOfInputs);
{{domxref("ChannelMergerNode")}}
この例ではステレオトラックを分け、左右のチャンネルをそれぞれ別に処理する方法を示しています。これを使うためには、{{domxref("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 |
|---|---|---|
| {{SpecName('Web Audio API', '#widl-AudioContext-createChannelMerger-ChannelMergerNode-unsigned-long-numberOfInputs', 'createChannelMerger()')}} | {{Spec2('Web Audio API')}} |
{{Compat("api.BaseAudioContext.createChannelMerger")}}