के साथ जेएस के माध्यम से ऑडियो चलाएं मेरे पास कैनवास आधारित गेम के लिए निम्न जेएस कोड है।ओवरलैपिंग
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);
}
यह काम करता है, लेकिन यह ध्वनि फ़ाइल हर बार यह कहा जाता है डाउनलोड करने के लिए एक सर्वर अनुरोध भेजता है। वैकल्पिक रूप से, अगर मैं ऑडियो वस्तु पहले से घोषित:
var snd = new Audio();
snd.src = EXPLOSION;
snd.volume = 0.5;
function createExplosion() {
snd.play();
}
यह काम करता है, इससे पहले कि ध्वनि खेल रहा समाप्त हो गया है createExplosion समारोह कहा जाता है लेकिन यदि, यह ध्वनि बिल्कुल नहीं चलता है। इसका मतलब है कि एक समय में ध्वनि फ़ाइल की केवल एक ही प्लेथ्रू की अनुमति है - और ऐसे परिदृश्यों में जहां कई विस्फोट हो रहे हैं, यह बिल्कुल काम नहीं करता है।
क्या ऑडियो फ़ाइल को कई बार ओवरलैप करने के लिए सही तरीके से चलाने का कोई तरीका है?
AudioFX लाइब्रेरी का उपयोग कर के साथ जा रहा समाप्त हुई: http: // codeincomplete .com/posts/2011/9/17/revisiting_html5_audio/ –