2012-08-03 28 views
10

मेरे पास एक एकल पृष्ठ वेबसाइट है जो HTML5 ऑडियो प्लेयर का संग्रह सूचीबद्ध करती है। समस्या साइट धीमी गति से बन गया है क्योंकि निम्न ब्राउज़रों सामग्री (एमपी 3 और ogg)लोड होने पर प्रीलोडलोड/स्ट्रीमिंग से एचटीएमएल 5 ऑडियो को कैसे रोकें?

Internet Explorer 
Google Chrome 
Firefox 
Safari 
(probably Opera) 

मैं खिलाड़ियों को लागू करने के बुनियादी कोड का उपयोग predownloading शुरू है। क्या कोई तरीका है कि मैं ब्राउज़र फ़ाइलों को ऑडियो फ़ाइलों को पूर्व-लोड करने से रोक सकता हूं और जब वे खेलें क्लिक करते हैं तो केवल काम करते हैं?

<audio controls="controls" height="32" width="300" tabindex="0"> 
<source type="audio/mpeg" src="http://cdn.com/track.mp3"></source> 
<source type="audio/ogg" src="http://cdn.com/track.ogg"></source> 
</audio> 
+1

मैं भी लगता है कि ऊंचाई और चौड़ाई ब्राउज़र से बाहर थूका कर रहे हैं ताकि डिफ़ॉल्ट रूप से आप, खाली छोड़ सकते हैं सिर्फ '<ऑडियो नियंत्रण =" नियंत्रण "' और 'प्रीलोड =" कोई नहीं "' M1th की तरह नीचे लिखा था। चूंकि ये सिर्फ ब्राउज़र प्रदान किए जाते हैं। – AlphaApp

+0

@AlphaApp धन्यवाद FYI। – TheBlackBenzKid

उत्तर

21
<audio controls="controls" preload="none"> 
    <source src="song.ogg" type="audio/ogg" /> 
    <source src="song.mp3" type="audio/mpeg" /> 
    Your browser does not support the audio element. 
</audio> 

नोट - preload="none" - वीडियो एचटीएमएल 5 और ऑडियो एचटीएमएल 5 के साथ प्रयोग किया जा सकता है।

प्रीलोड लोड इंटरनेट एक्सप्लोरर और ओपेरा को छोड़कर सभी प्रमुख ब्राउज़रों में समर्थित है।

+2

धन्यवाद। इसलिए यह स्वचालित रूप से स्वत: डाउनलोड करने और प्रीलोडिंग से HTML5 तत्वों को रोकता है। इसकी प्रशंसा करना। – TheBlackBenzKid

3

एमएसआईई अभी भी सभी वेब ट्रैफ़िक का लगभग 30% है, इसलिए preload="none" केवल एक भाग समाधान है। कुछ पन्नों जहां मैं इस समस्या थी में, मैं अपने पृष्ठ हेडर लिए एक छोटा सा स्क्रिप्ट जोड़ने:

<script type="text/javascript"> 
function addAudio(t) { 
    var l=t.innerHTML.length; 
    var audioName=t.parentElement.id; 
    if(t.children.length==0) { 
    t.innerHTML=t.innerHTML+'&nbsp; &nbsp; <audio controls="controls"><source src="'+ 
     audioName+'.ogg" type="audio/ogg" /><source src="'+ 
     audioName+'.mp3" type="audio/mp3" /> No audio tag support</audio>'; 
    } 
} 
</script> 

और फिर DHMTL का उपयोग गतिशील ऑडियो टैग को जोड़ने के लिए, उदाहरण के लिए:

<li id="2_Lesson_1_Hello"><span onclick="addAudio(this)">Γεια σας</span></li> 

क्या इस एक पाठ अवधि युक्त सूची आइटम को परिभाषित करना है। जब व्यक्ति स्पैन किए गए टेक्स्ट पर क्लिक ब्राउज़ करता है, तो जावास्क्रिप्ट <audio> टैग को सक्रिय करता है और जोड़ता है। आप वैकल्पिक रूप से onmouseover विशेषता का उपयोग कर सकते हैं ताकि ऑडियो टैग होवर पर जोड़ा जा सके।

यदि आप चाहें तो उत्पन्न कोड में preload विशेषता जोड़ें। यह एक आसान तरीका है, लेकिन यदि आप पहले से ही अपने वेबपृष्ठ पर jQuery का उपयोग कर रहे हैं, तो मुझे लगता है कि यह सुरुचिपूर्ण विकल्प प्रदान करता है।

+0

क्या आप या तो jQuery विकल्प पोस्ट कर सकते हैं और कोड को पूरी तरह समझा सकते हैं और इसका मतलब क्या है? प्रयास के लिए +1, यह मुझे 'Γεια σας' से बाहर रखता है यह कोड क्या कर रहा है आदि? – TheBlackBenzKid

+0

मैंने अपना जवाब अपडेट कर दिया है। क्षमा करें, मैं बस अपना पृष्ठों में से एक से एक रेखा खींच लिया "Γεια σας" इस उदाहरण में बस कुछ चरित्र डेटा (इसके लिए यूनानी है "हैलो"), जैसे कि "आपका ब्राउज़र का समर्थन नहीं करता ..." तुम्हारा में है। jQuery उदाहरण एक अलग क्यू एंड ए कुछ है कि मैं यहाँ कवर करना चाहते है, और वास्तव में नहीं। यह सिर्फ है कि मैं अपने मामले में जावास्क्रिप्ट और नहीं वास्तव में उचित के इस रूप में उन्नत उपयोग के संबंध में यदि आप इस सरल कार्रवाई दिनचर्या के स्पष्टीकरण की जरूरत है। – TerryE