BaseAudioContext:createChannelMerger() 方法
BaseAudioContext 介面的 createChannelMerger() 方法建立一個 ChannelMergerNode,它將來自多個音訊流的通道合併成一個單一的音訊流。
注意: 建立 ChannelMergerNode 的推薦方式是使用 ChannelMergerNode() 建構函式;請參閱 建立 AudioNode。
語法
js
createChannelMerger(numberOfInputs)
引數
numberOfInputs-
輸入音訊流中的通道數,輸出流將包含這些通道;如果未指定此引數,則預設為 6。
返回值
示例
以下示例展示瞭如何分離立體聲音軌(例如,一段音樂),並分別處理左右聲道。要使用它們,您需要使用 AudioNode.connect(AudioNode) 方法的第二個和第三個引數,它們允許您指定要從中連線的通道索引和要連線到的通道索引。
js
const ac = new AudioContext();
ac.decodeAudioData(someStereoBuffer, (data) => {
const source = ac.createBufferSource();
source.buffer = data;
const splitter = ac.createChannelSplitter(2);
source.connect(splitter);
const merger = ac.createChannelMerger(2);
// Reduce the volume of the left channel only
const gainNode = ac.createGain();
gainNode.gain.setValueAtTime(0.5, ac.currentTime);
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);
const 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-createchannelmerger |
瀏覽器相容性
載入中…