我一直试图让振荡器声音仅在一个频道播放,但我无法让它发挥作用。
我尝试使用panner
节点来设置声音的位置,但它仍会在两个声道中播放,而不是在更远的声道中播放。
我最近的尝试尝试使用频道合并,但它仍然在两个频道中播放:
var audioContext = new webkitAudioContext();
var merger = audioContext.createChannelMerger();
merger.connect(audioContext.destination);
var osc = audioContext.createOscillator();
osc.frequency.value = 500;
osc.connect( merger, 0, 1 );
osc.start( audioContext.currentTime );
osc.stop( audioContext.currentTime + 2 );
如何创建仅在单个通道中播放的振荡器?
答案 0 :(得分:2)
var audioContext = new webkitAudioContext();
var merger = audioContext.createChannelMerger(2);
merger.connect(audioContext.destination);
var osc = audioContext.createOscillator();
osc.frequency.value = 500;
osc.connect( merger, 0, 0 );
// workaround here:
var gain= audioContext.createGainNode();
gain.gain.value = 0.0;
osc.connect( gain );
gain.connect( merger, 0, 1 );
// end workaround
osc.start( audioContext.currentTime );
osc.stop( audioContext.currentTime + 2 );