我不明白为什么会这样:
myVid1=document.getElementById("video1");
var trigger = 5;
var timecheck = myVid1.currentTime;
if(timecheck==trigger){
alert("AWESOME");
};
不起作用。肯定会在5秒内触发if语句?我的意思是,我不明白为什么它也不会这样:
if(myVid1.currentTime=="5"){
alert("AWESOME");
};
答案 0 :(得分:1)
我发现该代码至少存在两个问题:
您似乎只执行一次if
语句,因此如果媒体在您的检查期间没有碰到您想要的时间,那么自然情况将是错误的。您可能希望回复视频关联MediaController
上的其中一个事件,几乎可以肯定timeupdate
。
您正在寻找完全 5
的值。但是,您碰巧完全值5
的可能性并不高。请记住,currentTime
是一个浮点数。建议在五秒钟后的任何时间查找myVid1.currentTime > 5
,或myVid1.currentTime >= 5 && myVid1.currentTime < 6
如果您只想在五秒钟内获得时间。
类似于:
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
}
});