我是一个奖励网站。用户在观看视频时可获得积分。用户希望跳到视频结尾以快速获得积分。因此,视频被标记为已完成的机制由JS计时器管理。
问题:当用户暂停视频时,计时器需要暂停。当用户再次单击play时,会使用setInterval重新打开该函数,其中现有函数中的setInterval执行相同的操作,从而创建巨大的问题...
这是每秒更新定时器的代码......
var video_percent_count = 0;
function video_percent() {
var prize_video = document.getElementById("prize_video");
total_duration = Math.floor(prize_video.duration) + 1;
video_percent_count++;
percent = video_percent_count / total_duration;
convert_percent = (percent * 100).toFixed(2);
if(convert_percent == 100) {
clearInterval(video_percent_interval);
}
if(prize_video.paused) {
clearInterval(video_percent_interval);
}
if(prize_video.play) {
setInterval("video_percent()", 1000);
}
$(".percent_container").text(convert_percent);
}
function prize_video(count_prize) {
var back_count_prize = count_prize - 1;
$("#prize_video").get(back_count_prize).play();
video_percent_interval = setInterval("video_percent()", 1000);
}
如何正确管理播放和暂停并仍保持setInterval
清洁?