以下のようなコードがあり、正常に動作します。それが何をするかというと、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();
});