2012-11-12 3 views
5

Ich mache gerade ein Spiel in Javascript, aber wenn ich versuche zu schießen, startet der Shooting-Sound nicht neu. Mein HTML sieht wie folgt aus:Wie starte ich einen eingebetteten Sound in Javascript?

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

Meine Javascript-Funktion

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

ist Gibt es eine Möglichkeit den Sound neu zu starten, bevor es wieder zu spielen?

+0

Ich würde persönlich einen Klon dieses Elements im Speicher behalten, dann einen Klon davon an das Dokument anhängen, falls notwendig, und es entfernen, nachdem es fertig gespielt hat. Das ist, was ich mit dem HTML5 'audio' Element und jQuery mache, nicht sicher, wie man das auf ein 'embed' mit reinem JS anwenden würde. –

Antwort

0

Ich würde Ihnen empfehlen, das <audio> Element zu verwenden, meiner Meinung nach ist es besser für Ihre Bedürfnisse als das Embed-Tag geeignet. https://developer.mozilla.org/en-US/docs/HTML/Element/Audio

ein <audio> Tag zurückspulen: document.getElementById('iamanaudioelement').currentTime = 0

(Randnotiz: nicht alle Browser <audio> Elemente mp3 unterstützen Wenn Sie für Firefox-Nutzer beabsichtigen, Ihr Spiel zu spielen, sollten Sie verfügen erkennen, ob ein Browser hat Unterstützung MP3 unterstützt. B. mit Modernizr, und erstellen Sie ogg oder mp3 Audio-Tags.)

1

Wenn Sie ein Spiel in JavaScript erstellen, würde ich vorschlagen, JavaScript zu HTML zu laden und Ihre Ressourcen, wie Sounds und Grafiken zu manipulieren. Sie können diesen Artikel lesen, um mit der Web Audio API zu beginnen: http://www.html5rocks.com/en/tutorials/webaudio/intro/.

0

Ist das wonach Sie suchen?