我有一段看起来像下面的代码,它工作正常。它的作用是在鼠标单击名为 synth 的 div 时发出振荡器声音。然后在释放鼠标按钮时停止播放振荡器。
synth.onmousedown= function () {
oscillator = context.createOscillator(), // Creates the oscillator
oscillator.type = synthWaveform.value;
oscillator.frequency.value = pitchInput.value;
oscillator.connect(context.destination); // Connects it to output
oscillator.noteOn(0);
};
synth.onmouseup = function () {
oscillator.disconnect();
};
然后我添加了下面的代码,以便当用户按下键盘字符时它会触发振荡器。问题是当按键被按住时,它会重复播放,然后在释放键盘字符时不会停止。我想知道是否有任何库或代码可以用来规避这个问题。目标是使最终结果类似于鼠标向下/向上效果,但键盘移动会触发声音。谢谢。
$('body').keydown(function() {
oscillator = context.createOscillator(), // Creates the oscillator
oscillator.type = synthWaveform.value;
oscillator.frequency.value = pitchInput.value;
oscillator.connect(context.destination); // Connects it to output
oscillator.noteOn(0);
});
$('body').keyup(function() {
oscillator.disconnect();
});