我试图仅在我的环绕声频道播放音频,但似乎任何时候我连接到特定频道时它也播放其他频道
我的设置和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);
奇怪的是,如果我只将它连接到左/右声道它会按预期播放。
我在Windows 10上运行chrome 45
答案 0 :(得分:1)
我认为您错误地将拆分器连接到合并。你可能想要
splitter.connect(merger, 0, 2);
splitter.connect(merger, 1, 3);
然后立体声源将被分割并发送到输出的通道2和3。
答案 1 :(得分:0)
您可以分享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);