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