Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单个通道中播放振荡_Javascript_Html_Web Audio Api - Fatal编程技术网

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()上的额外参数代表通道索引。见第一段