Javascript 在单个通道中播放振荡
我一直试图让振荡器的声音只在一个频道播放,但我一直无法让它工作 我尝试使用Javascript 在单个通道中播放振荡,javascript,html,web-audio-api,Javascript,Html,Web Audio Api,我一直试图让振荡器的声音只在一个频道播放,但我一直无法让它工作 我尝试使用panner节点来设置声音的位置,但它仍然在两个频道中播放,只是在较远的频道中声音没有那么大 我最近一次尝试使用频道合并,但仍在两个频道中使用: var audioContext = new webkitAudioContext(); var merger = audioContext.createChannelMerger(); merger.connect(audioContext.destination); var
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 );
如何创建只在单个通道中播放的振荡器?嗯,奇怪-当合并的输入未连接时,这似乎是一个错误。要解决此问题,只需将调零增益节点连接到其他输入,如下所示:
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 );
这是否会成为chromium或webkit项目的一个bug?此外,我正在测试添加一个零ed输出增益节点的想法,而我仍然在另一个通道中听到微弱的声音。。。?还有什么东西会导致它继续存在吗?铬。不,除了数模转换器电路或模拟插孔/电缆中的串扰之外,我不知道为什么它会继续存在。不过,响亮的正弦波可以做到这一点。(有人吗?)嗨,我只是好奇,到底传递给connect()的额外参数是什么?找不到这方面的文档。connect()上的额外参数代表通道索引。见第一段