2012-11-12 33 views
5

मैं वर्तमान में जावास्क्रिप्ट में एक गेम बना रहा हूं लेकिन शूट करने की कोशिश करते समय, शूटिंग ध्वनि फिर से शुरू नहीं होती है। मेरे एचटीएमएल इस तरह दिखता है:जावास्क्रिप्ट में एम्बेडेड ध्वनि को पुनरारंभ कैसे करें?

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

मेरे जावास्क्रिप्ट समारोह

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

है वहाँ इसे फिर से खेलने से पहले ध्वनि पुनः आरंभ करने की कोई तरीका है?

+0

मैं व्यक्तिगत रूप से स्मृति में उस तत्व का क्लोन रखता हूं, फिर आवश्यक होने पर दस्तावेज़ के क्लोन को जोड़ता हूं और इसे समाप्त होने के बाद इसे हटा देता हूं। एचटीएमएल 5 'ऑडियो' तत्व और jQuery के साथ मैं यही करता हूं, यह सुनिश्चित नहीं करता कि आप इसे शुद्ध जेएस के साथ 'एम्बेड' पर कैसे लागू करेंगे। –

उत्तर

0

मैं आपको <audio> तत्व का उपयोग करने की सलाह दूंगा, मेरी राय में यह एम्बेड टैग की तुलना में आपकी आवश्यकताओं के लिए अधिक अनुकूल है। document.getElementById('iamanaudioelement').currentTime = 0

(ओर ध्यान दें:: https://developer.mozilla.org/en-US/docs/HTML/Element/Audio

एक <audio> टैग रिवाइंड करने के लिए नहीं सभी ब्राउज़रों का समर्थन एमपी 3 <audio> तत्वों आप अपने खेल खेलने के लिए Firefox उपयोगकर्ताओं के लिए चाहते हैं तो आपको दिखाना चाहिए, का पता लगाने के लिए एक ब्राउज़र का समर्थन करता है कि क्या एमपी 3 समर्थन हासिल है। , उदाहरण के लिए Modernizr के साथ, और उचित के रूप में ओग या एमपी 3 ऑडियो टैग बनाएं।)

1

यदि आप जावास्क्रिप्ट में गेम बना रहे हैं, तो मैं सुझाव देता हूं कि एचटीएमएल को जावास्क्रिप्ट चुनने और अपने संसाधनों जैसे ध्वनि और ग्राफिक्स को बदलने में मदद करें। वेब ऑडियो एपीआई: http://www.html5rocks.com/en/tutorials/webaudio/intro/ के साथ शुरू करने के लिए आप इस आलेख को पढ़ सकते हैं।

0

क्या आप यह देख रहे हैं?

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

<!--Script--> 

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

</script>