2011-11-09 20 views

उत्तर

41

यह जानने के लिए कि ऑडियो कब खेलना शुरू करने के लिए तैयार है, oncanplay or oncanplaythrough events के लिए श्रोताओं को जोड़ें। कैसे घटना श्रोताओं का उपयोग करने के लिए robertc का जवाब बाहर

<audio oncanplay="myOnCanPlayFunction()" 
     oncanplaythrough="myOnCanPlayThroughFunction()" 
     onloadeddata="myOnLoadedData()" 
     src="myaudio.ogg" 
     controls> 
    <a href="myaudio.ogg">Download</a> 
</audio> 

<script> 
function myOnCanPlayFunction() { console.log('Can play'); } 
function myOnCanPlayThroughFunction() { console.log('Can play through'); } 
function myOnLoadedData() { console.log('Loaded data'); } 
</script> 
+0

धन्यवाद, महोदय। – auragar

+0

यदि आप कर सकते हैं, तो क्या आप एक उदाहरण प्रदान कर सकते हैं या श्रोताओं को समझा सकते हैं और उन्हें कैसे कार्यान्वित कर सकते हैं। – auragar

+1

@auragar श्रोताओं एक मानक डोम/जावास्क्रिप्ट चीज हैं, बस 'डोम इवेंट श्रोताओं' के लिए Google। आप उन्हें कैसे लागू करते हैं, इस पर निर्भर करता है कि आप उन्हें क्या करना चाहते हैं। – robertc

17

की जांच: पता लगाने के लिए जब ऑडियो सब पर लोड हो जाए, onloadeddata event को सुनने के।

var myAudio = $('audio')[0]; 

var readyState = myAudio.readyState; 

readyState एक नंबर होगा: आप भी सीधे एक ऑडियो तत्व के लिए तैयार राज्य देख सकते हैं। Mozilla's docs से:

  • 0 - मीडिया संसाधन के बारे में कोई जानकारी उपलब्ध नहीं है।
  • 1 - मीडिया संसाधन का पर्याप्त रूप से पुनर्प्राप्त किया गया है कि मेटाडेटा विशेषताएं प्रारंभ की गई हैं। मांग अब अपवाद नहीं उठाएगा।
  • 2 - डेटा वर्तमान प्लेबैक स्थिति के लिए उपलब्ध है, लेकिन वास्तव में एक से अधिक फ्रेम खेलने के लिए पर्याप्त नहीं है।
  • 3 - वर्तमान प्लेबैक स्थिति के साथ-साथ भविष्य में कम से कम थोड़े समय के लिए डेटा उपलब्ध है (दूसरे शब्दों में, वीडियो के कम से कम दो फ्रेम, उदाहरण के लिए)।
  • 4 - पर्याप्त डेटा उपलब्ध है-और डाउनलोड दर काफी अधिक है-मीडिया बिना किसी रुकावट के अंत तक खेला जा सकता है।