--- title: AudioContext.createChannelMerger() slug: Web/API/BaseAudioContext/createChannelMerger tags: - API - Audio - AudioContext - Audio_Chinese translation_of: Web/API/BaseAudioContext/createChannelMerger original_slug: Web/API/AudioContext/createChannelMerger ---
{{ APIRef("Web Audio API") }}
AudioContext.createChannelMerger()方法,会创建一个
ChannelMergerNode,后者可以把多个音频流的通道整合到一个音频流。
var audioCtx = new AudioContext(); var merger = audioCtx.createChannelMerger(2);
一个 {{domxref("ChannelMergerNode")}}.
下面的例子展示了如何分离立体音轨(就是一段音乐),处理使左右声道不同。使用的时候,需要指定AudioNode.connect(AudioNode)方法的第二个和第三个参数,分别用来指定通道链接来源的索引和输出的索引。
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); // Reduce the volume of the left channel only var gainNode = ac.createGain(); gainNode.gain.value = 0.5; splitter.connect(gainNode, 0); // Connect the splitter back to the second input of the merger: we // effectively swap the channels, here, reversing the stereo image. gainNode.connect(merger, 0, 1); splitter.connect(merger, 1, 0); var dest = ac.createMediaStreamDestination(); // Because we have used a ChannelMergerNode, we now have a stereo // MediaStream we can use to pipe the Web Audio graph to WebRTC, // MediaRecorder, etc. merger.connect(dest); });
Specification | Status | Comment |
---|---|---|
{{SpecName('Web Audio API', '#widl-AudioContext-createChannelMerger-ChannelMergerNode-unsigned-long-numberOfInputs', 'createChannelMerger()')}} | {{Spec2('Web Audio API')}} |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | {{CompatChrome(10.0)}}{{property_prefix("webkit")}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(25.0)}} | {{CompatNo}} | 15.0{{property_prefix("webkit")}} 22 (unprefixed) |
6.0{{property_prefix("webkit")}} |
Feature | Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatVersionUnknown}} | 26.0 | 1.2 | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | 33.0 |