我正在尝试使用 Web Audio API 创建自定义声像控制,但我无法使用 channel 分离器和合并节点从正确的 channel 发出任何声音:
var context = new webkitAudioContext(),
destination = context.destination,
osc = context.createOscillator(),
gainL = context.createGainNode(),
gainR = context.createGainNode(),
splitter = context.createChannelSplitter(2),
merger = context.createChannelMerger(2);
osc.frequency.value = 500;
osc.connect(splitter);
splitter.connect(gainL, 0);
splitter.connect(gainR, 1);
gainL.connect(merger, 0, 0);
gainR.connect(merger, 0, 1);
osc.noteOn(0);
gainL.gain.value = 0.1;
gainR.gain.value = 0.5;
osc.noteOff(2);
merger.connect(destination);
我在这里遗漏了什么明显的东西吗?此处有上述代码的 JSBin 预览:http://jsbin.com/ayijoy/1/
我正在运行 Chrome v24.0.1312.57,以防万一。
最佳答案
我最好的猜测是发生这种情况是因为振荡器输出单声道信号。尝试使用立体声源,您应该会更幸运。
编辑:这里是如何平移“单声道”信号(绕过分离器,因为没有立体声信号要分离,并将振荡器直接连接到两个增益。然后在调整后将两个单声道信号连接到合并器每个 channel 的增益)http://jsbin.com/ayijoy/16/
关于javascript - 网络音频 : No sound in right channel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915951/