私はキーを押すたびに "keypress"サウンドをトリガーするために以下のJavaScriptコードを使用しています。 最大の問題は、入力するのが早すぎると(前のクリップが終了する前と思われる)、再生する埋め込みタグに送られた次のクリップのソースが未定義であることです。 埋め込みタグソースオーディオ後に定義されていません
document.onkeydown = function() {
var numberOfSongs = 3
var sound = new Array(numberOfSongs+1)
sound[0]= "key1.mp3"
sound[1]= "key2.mp3"
sound[2]= "key3.mp3"
function randomNumber(){
var randomLooper = -1
while (randomLooper < 0 || randomLooper > numberOfSongs || isNaN(randomLooper)){ randomLooper = parseInt(Math.random()*(numberOfSongs+1))
}
return randomLooper
}
var randomsub = randomNumber()
var soundFile = sound[randomsub]
document.getElementById("audio").innerHTML = '<EMBED src= "' + soundFile + '" hidden=true autostart=true loop=true>';
}
は、私は、これは簡単にクリップが前の上のいずれかの演奏、またはクリップの前のクリップを中断することを可能にすることを可能にすることによって固定されていると思いますが、これは単なる憶測です。
これを処理するには、debounceを使用する必要があります。 – thangngoc89
whileループは本当に不要です。0から配列の長さまでの乱数を生成することができます。 –