Ho il seguente codice JS per un gioco basato su tela.Riproduci audio tramite JS con sovrapposizione
var EXPLOSION = "sounds/explosion.wav";
function playSound(str, vol) {
var snd = new Audio();
snd.src = str;
snd.volume = vol;
snd.play();
}
function createExplosion() {
playSound(EXPLOSION, 0.5);
}
Questo funziona, tuttavia invia una richiesta del server per scaricare il file audio ogni volta che viene chiamato. In alternativa, se dichiaro l'oggetto audio in anticipo:
var snd = new Audio();
snd.src = EXPLOSION;
snd.volume = 0.5;
function createExplosion() {
snd.play();
}
Questo funziona, se la funzione createExplosion viene chiamato prima il suono è finito di giocare, non gioca il suono a tutti. Ciò significa che è consentito solo un singolo playthrough del file audio alla volta e che in scenari in cui si verificano più esplosioni non funziona affatto.
C'è un modo per riprodurre correttamente un file audio più volte sovrapponendosi a se stesso?
finito per andare con utilizzando la libreria AudioFX: http: // codeincomplete .com/posts/2011/9/17/revisiting_html5_audio/ –