2012-11-12 6 views
5

Attualmente sto facendo un gioco in Javascript ma quando provo a scattare, il suono di ripresa non si riavvia. Il mio HTML è simile al seguente:Come riavviare un suono incorporato in Javascript?

funzione
<embed id="playerShot" src="resources/sounds/ump45shot.mp3" hidden="true" autostart="false"loop="false" volume="20"> 

mio Javascript è

function shoot() { 
document.getElementById("playerShot").Play(); 
} 

C'è un modo per riavviare il suono prima di giocare di nuovo?

+0

io personalmente tengo un clone di tale elemento nella memoria, quindi aggiungere un clone di esso al documento in caso di necessità e rimuoverlo dopo che è finito di giocare. Questo è quello che faccio con l'elemento 'audio' HTML5 e con jQuery, non so come applicarlo ad un' embed' con puro JS. –

risposta

0

Si consiglia di utilizzare l'elemento <audio>, a mio parere è più adatto alle proprie esigenze rispetto al tag embed. https://developer.mozilla.org/en-US/docs/HTML/Element/Audio

Per riavvolgere un <audio> tag: document.getElementById('iamanaudioelement').currentTime = 0

(nota a margine: non tutti i browser supportano mp3 <audio> elementi Se si intende per gli utenti di Firefox per giocare il vostro gioco, si dovrebbe caratteristica di rilevare se un browser supporta ha il supporto MP3. ad es. con Modernizr e creare tag audio ogg o mp3 a seconda dei casi)

1

Se stai facendo un gioco in JavaScript, ti suggerisco di scegliere JavaScript in HTML per caricare e manipolare le tue risorse, come suoni e grafica. Puoi leggere questo articolo per iniziare con l'API Web Audio: http://www.html5rocks.com/en/tutorials/webaudio/intro/.

0

È questo quello che stai cercando?

<button onclick="playSfx('resources/sounds/ump45shot.mp3');">PLAY</button> 

<!--Script--> 

<script> 
    function playSfx(filename){ 
    var snd = new Audio(filename); 
    snd.play(); 
} 

</script>