MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

AudioContext.createChannelSplitter()

这篇翻译不完整。请帮忙从英语翻译这篇文章

The createChannelSplitter() method of the AudioContext Interface is used to create a ChannelSplitterNode, which is used to access the individual channels of an audio stream and process them separately.

Syntax

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

参数

numberOfOutputs
你期待将输入音频分割成的声道道数目; 当不传入参数时,默认为6

Returns

一个 ChannelSplitterNode.

Example

下面这个简单的例子告诉你怎样分割一个双声道音轨 (或者说一段音乐), 以及对于左右声道不同的处理. 要使用它们, 你需要用到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);
});

规格

规格 状态 注释
Web Audio API
createChannelSplitter()
Working Draft  

浏览器兼容性

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit (Yes) 25.0 (25.0)  未实现 15.0webkit
22 (unprefixed)
6.0webkit
Feature Android Edge Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Yes) 26.0 1.2 ? ? ? 33.0

另见

文档标签和贡献者

 此页面的贡献者: yqjiang
 最后编辑者: yqjiang,