मैंने जावास्क्रिप्ट का त्वरित स्निपेट हैक किया है जो वीडियो प्रगति को निर्धारित करने के लिए फ्लोप्लेयर Player
और Clip
ऑब्जेक्ट्स के साथ इंटरैक्ट करता है।
var videoProgressInterval;
flowplayer("player", "http://releases.flowplayer.org/swf/flowplayer-3.2.15.swf");
flowplayer("player").onStart(startVideoProgressChecking);
flowplayer("player").onResume(startVideoProgressChecking);
flowplayer("player").onStop(stopVideoProgressChecking);
flowplayer("player").onPause(stopVideoProgressChecking);
flowplayer("player").onFinish(stopVideoProgressChecking);
function startVideoProgressChecking() {
videoProgressInterval = setInterval(checkVideoProgress, 1000);
videoProgressInterval();
}
function stopVideoProgressChecking() {
clearInterval(videoProgressInterval);
}
function checkVideoProgress() {
var time_completed = flowplayer("player").getTime();
var total_time = flowplayer("player").getClip().fullDuration;
var percent_done = Math.floor((time_completed/total_time) * 100);
console.log(percent_done + "% of video done");
}
आप JSFiddle पर डेमो देख सकते हैं।
यह start
और resume
प्लेयर की घटनाओं के लिए ईवेंट हैंडल करता है। एक बार वीडियो प्लेबैक शुरू हो जाने के बाद, यह एक अंतराल पंजीकृत करता है जो हर सेकेंड चलाता है (अधिक बार चलाने के लिए इसे संशोधित करने के लिए स्वतंत्र महसूस करें)। अंतराल checkVideoProgress()
को हर बार निष्पादित होने पर कॉल करता है, जिसके बाद वर्तमान प्लेबैक समय और प्रगति की गणना करने के लिए Clip
ऑब्जेक्ट से कुल अवधि प्राप्त होती है।
इसके अतिरिक्त, एक ईवेंट हैंडलर भी अंतराल स्पष्ट करने के लिए एक बार वीडियो रोक दी गई है stop
, pause
और finish
घटनाओं के लिए पंजीकृत किया गया है/बंद कर दिया।
स्रोत
2012-10-19 17:28:24
मैं cuepoints का उपयोग कर एक विधि तैयार करने में सक्षम था। मेरी विशेष समस्या यह थी कि मुझे गतिशील रूप से यह निर्धारित करने की आवश्यकता थी कि वीडियो 25, 50 के माध्यम से 75% खेला गया था। सबसे पुराना मैंने पाया कि प्लेयर की अवधि प्लेयर को ज्ञात है, मेटाडेटा ईवेंट में है। यह मेरे लिए काम करता है: – Lounge9
यह मेरे लिए * काम करता है: https://gist.github.com/1161365 * यह एफपी आईपैड प्लगइन का उपयोग करते समय आईओएस पर काम नहीं करता है। लेकिन ऐसा लगता है कि यह एक बड़ा फ्लोप्लेयर मुद्दा है। – Lounge9