Zrobiłem krótki fragment kodu JavaScript, który wchodzi w interakcję z obiektami Flowplayer Player
i Clip
, aby określić postęp wideo.
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");
}
Możesz zobaczyć demo na JSFiddle.
Rejestruje uchwyty zdarzeń dla zdarzeń start
iodtwarzacza. Po rozpoczęciu odtwarzania wideo rejestruje interwał, który jest uruchamiany co sekundę (możesz to zmodyfikować, aby działał częściej). Interwał wywołuje checkVideoProgress()
za każdym razem, gdy zostanie wykonany, a następnie pobiera bieżący czas odtwarzania i całkowity czas trwania z obiektu Clip
w celu obliczenia postępu.
Ponadto funkcja obsługi zdarzeń jest również zarejestrowana dla zdarzeń stop
, pause
i finish
, aby wyczyścić interwał po wstrzymaniu/zatrzymaniu wideo.
Udało mi się opracować metodę wykorzystującą punkty kontrolne. Mój szczególny problem polegał na tym, że musiałem dynamicznie określać, kiedy wideo zostało zagrane 25, 50 i 75% drogi. Najwcześniejsze stwierdziłem, że czas trwania filmu jest znany graczowi, jest w zdarzeniu onMetaData. To zadziałało dla mnie: – Lounge9
To działało * dla mnie: https://gist.github.com/1161365 * Nie działa na iOS podczas korzystania z wtyczki FP iPad. Ale wydaje się, że to większy problem z FlowPlayerem. – Lounge9