currentTime无法正常工作。我在这里没有得到什么

时间:2013-02-12 17:37:46

标签: javascript video

我不明白为什么会这样:

myVid1=document.getElementById("video1");
var trigger = 5;
var timecheck = myVid1.currentTime;


if(timecheck==trigger){
alert("AWESOME");
};

不起作用。肯定会在5秒内触发if语句?我的意思是,我不明白为什么它也不会这样:

if(myVid1.currentTime=="5"){
    alert("AWESOME");
    };

1 个答案:

答案 0 :(得分:1)

我发现该代码至少存在两个问题:

  1. 您似乎只执行一次if语句,因此如果媒体在您的检查期间没有碰到您想要的时间,那么自然情况将是错误的。您可能希望回复视频关联MediaController上的其中一个事件,几乎可以肯定timeupdate

  2. 您正在寻找完全 5的值。但是,您碰巧完全5的可能性并不高。请记住,currentTime是一个浮点数。建议在五秒钟后的任何时间查找myVid1.currentTime > 5,或myVid1.currentTime >= 5 && myVid1.currentTime < 6如果您只想在五秒钟内获得时间。

  3. 类似于:

    myVid1=document.getElementById("video1");
    var trigger = 5;
    myVid1.controller.addEventListener('timeupdate', function() {
        if (myVid1.currentTime >= trigger) {
            // Do something, note that this will happen again and again unless
            // you set a flag or remove the handler
        }
    });