--- title: AudioContext.createChannelSplitter() slug: Web/API/AudioContext/createChannelSplitter translation_of: Web/API/BaseAudioContext/createChannelSplitter ---
{{ APIRef("Web Audio API") }}
インターフェースのcreateChannelSplitter()
メソッドは、オーディオストリームを個別に処理するためにチャンネルを分離する{{domxref("ChannelSplitterNode")}}を生成します。
var audioCtx = new AudioContext(); var splitter = audioCtx.createChannelSplitter(numberOfOutputs);
{{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')}} |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | {{CompatChrome(10.0)}}{{property_prefix("webkit")}} | {{CompatGeckoDesktop(25.0)}} | {{CompatNo}} | 15.0{{property_prefix("webkit")}} 22 (unprefixed) |
6.0{{property_prefix("webkit")}} |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | 26.0 | 1.2 | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | 33.0 |