1. 面向开发者的 Web 技术
  2. Web API
  3. BaseAudioContext
  4. AudioContext.createChannelSplitter()

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

AudioContext.createChannelSplitter()

基线 广泛可用

自 2021年4月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

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

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

参数

numberOfOutputs

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

Returns

一个 ChannelSplitterNode.

Example

下面这个简单的例子告诉你怎样分割一个双声道音轨 (或者说一段音乐), 以及对于左右声道不同的处理。要使用它们,你需要用到AudioNode.connect(AudioNode)方法的第二个和第三个参数,他们会指定链接声道源的序号和链接到的声道序号。

js
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
# dom-baseaudiocontext-createchannelsplitter

浏览器兼容性

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /