Ich verwende den folgenden JavaScript-Code, um jedes Mal, wenn eine Taste gedrückt wird, einen "Tastendruck" auszulösen. Das größte Problem ist, dass wenn Sie zu schnell tippen (es scheint, als ob der vorherige Clip fertig ist), der nächste Clip, der an das Embed-Tag gesendet wird, um abgespielt zu werden, hat eine Quelle von Undefined.Tag-Quelle einbetten Nicht definiert nach Audio
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>';
}
Ich denke, dies leicht, indem eine Klammer befestigt ist, entweder über die vorherigen gespielt werden, oder ein Clip ermöglichen, den vorherigen Clip zu unterbrechen, aber das ist nur Spekulation.
Sie sollten Debounce verwenden, um damit umzugehen. – thangngoc89
Ihre while-Schleife ist wirklich unnötig, Sie können nur eine Zufallszahl zwischen 0 und der Länge des Arrays generieren. –