Tôi đã hack một đoạn mã Javascript ngắn tương tác với các đối tượng Flowplayer Player
và Clip
để xác định tiến trình video.
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");
}
Bạn có thể xem bản trình diễn trên JSFiddle.
Nó đăng ký xử lý sự kiện cho các sự kiện start
và resume
của trình phát. Khi phát lại video đã bắt đầu, nó đăng ký một khoảng thời gian chạy mỗi giây (cảm thấy tự do để sửa đổi điều này để chạy thường xuyên hơn). Khoảng thời gian gọi checkVideoProgress()
mỗi khi nó được thực thi, sau đó nhận thời gian phát lại hiện tại và tổng thời lượng từ đối tượng Clip
để tính toán tiến độ.
Ngoài ra, trình xử lý sự kiện cũng được đăng ký cho các sự kiện stop
, pause
và finish
để xóa khoảng thời gian sau khi video bị tạm dừng/dừng.
Nguồn
2012-10-19 17:28:24
Tôi đã có thể đưa ra một phương pháp sử dụng cuepoints. Vấn đề cụ thể của tôi là tôi cần phải tự động xác định thời điểm video được phát 25, 50 là 75%. Lần đầu tiên tôi tìm thấy thời lượng video được người chơi biết là trong sự kiện onMetaData. Điều này làm việc cho tôi: – Lounge9
Điều này có hiệu lực * đối với tôi: https://gist.github.com/1161365 * Nó không hoạt động trên iOS khi sử dụng plugin FP iPad. Nhưng đó dường như là một vấn đề lớn hơn về FlowPlayer. – Lounge9