2011-12-06 23 views
13

के साथ ध्वनि चलाने का सबसे अच्छा तरीका मैं एक आवाज बजाने की कोशिश कर रहा हूं और मुझे दो तरीकों से मिल गया है जो मेरे लिए काम करता है। कौन सा बेहतर तरीका है और क्यों? एक अच्छा विचार एक "लोड" घटना श्रोता जोड़ें?एचटीएमएल 5 और जावास्क्रिप्ट

सबसे पहले जिस तरह से:

$(document).ready(function() { 
    var audioElement = document.createElement('audio'); 
    audioElement.setAttribute('src', 'sound.ogg'); 
    audioElement.addEventListener("load", function(){ 
     audioElement.play(); 
    }, true); 

    audioElement.play(); 
}); 

दूसरा तरीका:

$(document).ready(function() { 
    audioElement = new Audio('sound.ogg'); 
    audioElement.play(); 
}); 
+0

नए ऑडियो() के मामले में ऑडियो के लिए नेटवर्क स्रोत के बारे में क्या? – vinnitu

उत्तर

2

आपको वास्तव में पहले तरीके से जाना चाहिए (load के साथ), क्योंकि 'DOMReady' गारंटी देता है कि ध्वनि फ़ाइल खत्म होने की तरह, छवि के साथ ही डाउनलोड नहीं होता है।

+0

लेकिन ऑडियो फ़ाइल प्रारंभ करने का बेहतर तरीका कौन सा है? 'नया ऑडियो ('sound.ogg');' या 'document.createElement ('audio');' ?? –

+1

AFAIK वे समान हैं, दोनों एक नया 'HTMLAudioElement' बनाएंगे। हालांकि 'नया ऑडियो()' कन्स्ट्रक्टर पुराना तरीका है (प्री-डीओएम 1 के रूप में) और 'document.createElement()' नया तरीका है (डीओएम 2); आप अपने दस्तावेज़ में 'नए ऑडियो() 'के साथ बनाए गए तत्व को संलग्न नहीं कर सकते हैं। 'नया ऑडियो ('sound.ogg')' var a = new audio() के लिए शॉर्टकट है; a.src = 'sound.ogg'; '। – tungd

+0

ठीक है, मैंने यहां एक परीक्षण किया है http://jsperf.com/new-audio-vs-document-createelement-audio – tungd

1

आप वास्तव में इस के लिए एक सुविधा पहचान प्रणाली का उपयोग करना चाहिए। मैं Modernizr to test for HTML5 audio का उपयोग करता हूं। इस तरह आप केवल उन लोगों को ऑडियो देने का प्रयास कर रहे हैं जो इसे HTML5 के साथ प्राप्त कर सकते हैं।

आप test for HTML5 features और वैकल्पिकizr का उपयोग करके नहीं मिला तो वैकल्पिक पर फ़ॉलबैक भी कर सकते हैं। इन विकल्पों को "पॉलीफिल" कहा जाता है और इनमें से एक सूची है कि मॉडर्नइज़र समर्थन here है।

ऐसा करने का लाभ यह है कि आप ब्राउज़र सुविधाओं के संदर्भ में अपने सभी अड्डों को कवर कर रहे हैं। मैं मूर्खों को अभी भी आईई 7 का उपयोग करके परेशान करता हूं।

+0

मुझे मॉडर्निजर के बारे में पता है, लेकिन मैं आईई मामले में के साथ ध्वनि चलाने की कोशिश कर रहा हूं, और मैं html8shiv स्क्रिप्ट का उपयोग कर रहा हूं इसके बजाय Modernizr –

संबंधित मुद्दे