每当我尝试一个简单的振荡器时(查看这个例子,不是我的,但它显示同样的问题http://webaudioapi.com/samples/oscillator/)我听到它在开始和结束时都会发出“点击”。
如何绕过这个问题? 感谢
答案 0 :(得分:7)
要停止咔嗒声,您需要平稳地使振荡器上升而不是立即启动它。如下所示:
var osc = context.createOscillator();
var gain = context.createGain();
osc.connect(gain);
gain.gain.setValueAtTime(0, context.currentTime);
gain.gain.linearRampToValueAtTime(1, context.currentTime + <some small time>);
osc.start();
...
// To stop the oscillator, ramp the gain down.
gain.gain.linearRampToValueAtTime(0, endTime - <small time>);
osc.stop(endTime);