buffered
पर end
विधि कॉलिंग की जाँच के बिना अविश्वसनीय है। यह संभव है कि आप विधि को कुछ भी नहीं बुलाएंगे।
document.querySelector('span').innerHTML = document.querySelector('audio').buffered.length;
<audio src="http://myst729.qiniudn.com/within-temptation_pale.mp3" controls autoplay></audio>
<p>Buffered Length: <span></span></p>
देखें: इस बेला की जाँच करें? पहली शुरुआत में, buffered लंबाई 0 है - कुछ भी लोड नहीं हुआ है। आपको यह सुनिश्चित करने की ज़रूरत है कि start
या end
विधि को कॉल करने से पहले buffered लंबाई 0 नहीं है।
हर बार जब आप buffered
पढ़ते हैं, तो यह वास्तव में तय किया जाता है। तो, एक दृश्यमान "लोडिंग" प्रभाव प्राप्त करने के लिए, आपको इसे बार-बार पढ़ना होगा।
यहाँ मैं भरी हुई और खेला प्रतिशत अपडेट करने के लिए 50 मिलीसेकंड का प्रयास करें:
var audio = document.querySelector('audio');
var percentages = document.querySelectorAll('span');
function loop() {
var buffered = audio.buffered;
var loaded;
var played;
if (buffered.length) {
loaded = 100 * buffered.end(0)/audio.duration;
played = 100 * audio.currentTime/audio.duration;
percentages[0].innerHTML = loaded.toFixed(2);
percentages[1].innerHTML = played.toFixed(2);
}
setTimeout(loop, 50);
}
loop();
<audio src="http://myst729.qiniudn.com/within-temptation_pale.mp3" controls autoplay></audio>
<p>Loaded: <span></span>%</p>
<p>Played: <span></span>%</p>
नोट: एमपी 3 फ़ाइल अपनी जगह में सुलभ नहीं हो सकता। यदि ऐसा है, तो बस अपने पक्ष में एक और स्रोत आज़माएं। अन्यथा आप एक बहुत अच्छी मादा मुखर सुनेंगे, और प्रतिशत लगातार परिवर्तन देखेंगे, अंततः 100% समाप्त होता है।
बस स्पष्ट करने के लिए, '# myProgressBar' तत्व एक' 'तत्व है, जो एक है माना जाता है 'मूल्य' संपत्ति। – hawkharris