我试图只在我的环绕声道中播放音频,但似乎每当我连接到一个特定的声道时,它也会播放其他声道
我的设置和audioContext.destination配置为4个通道
var merger = context.createChannelMerger(4);
audio.connect(merger, 0, 2);
audio.connect(merger, 0, 3);
merger.connect(context.destination);
我的音频是立体声的(但我只关心一个声道),所以我也先试着分割它
var merger = context.createChannelMerger(4),
splitter = context.createChannelSplitter(2);
audio.connect(splitter);
splitter.connect(merger, 0, 2);
splitter.connect(merger, 0, 3);
merger.connect(context.destination);
奇怪的是,如果我只将它连接到左/右声道,它就会按预期播放。
我在Windows10上运行chrome 45
发布于 2015-09-28 23:40:00
我想你错误地把拆分器和合并连接起来了。您可能需要splitter.connect(merger, 0, 2); splitter.connect(merger, 1, 3);
,然后立体声信号源将被分割并发送到输出的通道2和3。
发布于 2015-09-30 02:27:01
你能分享你的AudioContext设置代码吗?它需要对单独的路由进行一些特定的设置。如下例所示:
var context = new AudioContext();
var maxChannelCount = context.destination.maxChannelCount;
context.destination.channelCount = maxChannelCount;
var merger = context.createChannelMerger(maxChannelCount);
merger.connect(context.destination);
// This will play the sound on 3rd and 4th speakers for 1 second.
var osc = context.createOscillator();
osc.connect(merger, 0, 2);
osc.connect(merger, 0, 3);
osc.start();
osc.stop(1.0);
https://stackoverflow.com/questions/32802971
复制相似问题