--- title: AudioContext.createChannelSplitter() slug: Web/API/BaseAudioContext/createChannelSplitter translation_of: Web/API/BaseAudioContext/createChannelSplitter original_slug: Web/API/AudioContext/createChannelSplitter ---

{{ APIRef("Web Audio API") }}

インターフェースのcreateChannelSplitter()メソッドは、オーディオストリームを個別に処理するためにチャンネルを分離する{{domxref("ChannelSplitterNode")}}を生成します。

構文

var audioCtx = new AudioContext();
var splitter = audioCtx.createChannelSplitter(numberOfOutputs);

引数

numberOfOutputs
入力オーディオストリームを分ける数。引数の指定がなければ6。

Returns

{{domxref("ChannelSplitterNode")}}

この例ではステレオトラックを分け、左右のチャンネルをそれぞれ別に処理する方法を示しています。これを使うためには、{{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-createChannelSplitter-ChannelSplitterNode-unsigned-long-numberOfOutputs', 'createChannelSplitter()')}} {{Spec2('Web Audio API')}}  

ブラウザ互換性

{{Compat("api.BaseAudioContext.createChannelSplitter")}}

参考