gpt4 book ai didi

javascript - 在单个 channel 中播放振荡

转载 作者:搜寻专家 更新时间:2023-10-31 08:47:33 25 4
gpt4 key购买 nike

我一直在尝试让振荡器声音只在一个 channel 中播放,但我无法让它工作。

我尝试使用 panner 节点来设置声音的位置,但它仍然在两个 channel 中播放,只是在较远的 channel 中没有那么响亮。

我最近尝试使用 channel 合并,但它仍然在两个 channel 中播放:

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 );

如何创建仅在单个 channel 中播放的振荡器?

最佳答案

嗯,很奇怪 - 当 Merger 的输入未连接时,这似乎是一个错误。要变通,只需将清零增益节点连接到另一个输入,如下所示:

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 );

关于javascript - 在单个 channel 中播放振荡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com