我真的希望这个问题能够解决一个编程问题并且最终不会出现声音力学问题……这里……
我正在做一些实验,以弄清楚Web Audio API的工作原理.我想要做的是一个简单的“挂断电话”声音循环播放.问题是,当声音结束时,你可以听到一声非常烦人的“咔哒”声.我无法更好地解释它,但如果您测试代码,您可以听到它.
有什么方法可以避免这种情况吗?我可以应用一些过滤器或任何东西?
var audioContext = new (AudioContext || webkitAudioContext)(); var frequencyOffset = 0 function boop(){ // Our sound source is a simple triangle oscillator var oscillator = audioContext.createOscillator(); // Create sound source oscillator.type = 'triangle'; // Adding a gain node just to lower the volume a bit and to make the // sound less ear-piercing var gain = audioContext.createGain(); oscillator.connect(gain); gain.connect(audioContext.destination); gain.gain.value = 0.1; // Just for fun let the frequency increase on each itteration oscillator.frequency.value = 200 + frequencyOffset; oscillator.start(0); // The sound should last for 250ms setTimeout(function(){ oscillator.disconnect(); oscillator.stop(); gain.disconnect(); },250); frequencyOffset += 1; } setInterval(boop,500);