2011-12-30 17 views
19
में

तो, मैं एक श्रोतावीडियो लोड किया जाता है या नहीं जावास्क्रिप्ट

document.getElementById("video").buffered.length 

पर प्रयोग कर रहे हैं अगर यह 0 से अधिक के लिए है देखने के लिए जान सकते हैं कि जब एक वीडियो लोड या नहीं की। यह एक बहुत ही छोटे वीडियो के लिए काम करता है, और केवल Google क्रोम में। यह फ़ायरफ़ॉक्स में बिल्कुल काम नहीं करता है। काम करने के लिए इसे पाने के लिए कोई विचार?

मैं अनिवार्य रूप से, जब तक 3 अलग वीडियो एक विशिष्ट कार्रवाई करने के लिए लोड किए गए हैं इंतजार करना चाहते हैं मैं इस बारे में कैसे जाते हैं?

उत्तर

32

इस प्रयास करें:

var video = document.getElementById("video-id-name"); 

if (video.readyState === 4) { 
    // it's loaded 
} 

यहां पढ़ें: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState

+0

कौन से ब्राउज़र उस संपत्ति का समर्थन करते हैं? –

+0

@ जेरेडफिशिश इस [विकी] (http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28HTML5_Media%29) के अनुसार, समर्थन पूरा हो गया है (वेबकिट कॉलम खाली है, लेकिन अगर मेरा कार्यान्वयन पीछे था तो मुझे आश्चर्य होगा मोज़िला/ओपेरा)। –

+1

> यदि यह सिर्फ मांग के बारे में है की तुलना में 1 चाल कर सकता है। – Costa

2

सामान्य परिस्थितियों में एक श्रोता में इस बनाने के लिए, है, तो आप को निलंबित घटना को सुनने के लिए चाहता हूँ। जब डाउनलोड रोका या किसी भी कारण बंद कर दिया, सहित वह पूरा नहीं कर रहा है यह शुरू हो रहा है।

तुम भी मामलों के लिए खेल रहे हैं सुनने के लिए जब सामग्री को पहले से ही भरी हुई है (जैसे, कैश से) चाहता हूँ

video.addEventListener("playing", function() { 
    console.log("[Playing] loading of video"); 
    if (video.readyState == 4) { 
     console.log("[Finished] loading of video"); 
    } 
}); 
video.addEventListener("suspend", function(e) { 
    console.log("[Suspended] loading of video"); 
    if (video.readyState == 4) { 
     console.log("[Finished] loading of video"); 
    } 
}); 

स्रोत: https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events

0

मैं setInterval का उपयोग कर पाते हैं सक्रिय रूप से सुनने के लिए काम करता है जब हर आधे-दूसरे की जाँच जब तक यह में लोड करता है के द्वारा वीडियो परिवर्तन की readyState

checkforVideo(); 

function checkforVideo() { 
    var b = setInterval(()=>{ 
     if(VideoElement.readyState >= 3){ 

      \\do whatever you want done here 

      \\you can now clearInterval (stop checking every half second) 
      clearInterval(b); 
     }     
    },500); 
} 

आप नहीं कर रहे हैं उसी 0gfunction()

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