0

所以我正在开发一个交互式 HTML5 视频播放器,目前在使用 popcorn.js 时一切正常,但我现在正试图回去让我的播放器在不依赖 popcorn.js 的情况下工作。

使用 popcorn.js 时,您可以使用如下代码:

popcorn.code((
    start: 0,
    end: 5,
    onStart: function( options ) {
        //put code here
    }
}}

当您的视频时间跨度从 0 到 5 时,您的代码将被执行。现在,我试图在视频的某个时间范围内执行某些代码块,但我似乎无法让它正常工作并且只是想知道是否有人可以看到我要解决这个问题的地方。

while (myVideo.currentTime >= 0 && myVideo.currentTime <= 5)
{
    console.log(myVideo.currentTime);
}

这个 while 循环也运行得非常快,以至于导致浏览器变慢并死机。但是,如果我尝试使用 if 循环而不是 while 循环,它(显然)只检查一次。

4

2 回答 2

1

您可以检查的次数少于while循环次数。

var check = setInterval(function() {
    if (myVideo.currentTime >= 5) {
        clearInterval(check);
        console.log("5 seconds reached");
    }
}, 500);

当用户暂停并重新开始,或者如果他跳到时间线内的另一个时间时,您可以再次开始此操作。

于 2013-02-01T17:03:25.790 回答
1

尝试使用以下方法,以便您的函数每秒只运行一次。

setInterval(function(){
if(myVideo.currentTime >= 0 && myVideo.currentTime <= 5){
console.log(myVideo.currentTime);
}
},1000);

祝你好运!

于 2013-02-01T17:09:21.347 回答