5
我想利用网络音频API创建自定义的平移控制,但我不能让任何声音出来使用通道分离器和合并的节点右声道:网络音频:无声音中右声道
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,以防万一使用。
这是一个很好的解决方案,由于;事实证明,我失去了一些明显的东西。 – SquareFeet 2013-02-18 11:30:44
这就是说,虽然,我想出了混合从单声道 - >立体声已自动连接一个单源的立体声目的地时完成。这里的规范不是那么清楚:http://www.w3.org/TR/webaudio/#UpMix 考虑直接连接一个振荡器到目的节点:声音将在L和R声道播放,这意味着一个自动上混;我想象同样会发生在我的问题的情况下... – SquareFeet 2013-02-18 11:37:26
一般情况下,上混不自动发生。但是,Splitter节点会让你直接混淆信号,所以它不会。从规范:'[AudioSplitterNode]有一个单一的输入,和一些“有效”的输出,这些输出等于输入音频流中的通道数量。 ...任何不是“积极”的输出都会输出沉默,并且通常不会与任何东西连接。 – cwilso 2013-02-18 15:57:41