我通常可以检查带有"结束"事件的视频的结束。但当视频处于循环时,这不会被触发。我也试着比较currentTime和持续时间,但currentTime并不总是精确到秒。有什么方法可以检测视频是否已重新启动?
您可以绑定到视频的timeupate
事件。然后存储currentTime
,并检查当前持续时间是否小于上次保存的持续时间。如果发生这种情况,则视频已重新启动。以这把小提琴为例:http://jsfiddle.net/z7Lueq63/
您可以为seeked
事件添加eventListener
,然后检查,因为正在循环的视频将自动"查找"视频的开头。如果您随后检查启动是否为0,则(可能)不是用户重置它,因此这是一个自动查找事件。无论哪种方式,即使用户将其归零,我认为从技术上讲,它也算作一个循环。
从技术上讲,你也可以检查用户是否点击了,如果他们点击了,你知道这不是一个自动循环,否则,如果它不是click
,并且currentTime
设置为0,那就是一个循环。
它的工作方式如下:
HTML
<video id="video" loop autoplay>
<source src="video.mp4" />
</video>
Javascript
document.getElementById("video").addEventListener("seeked", function(event){
if(document.getElementById("video").currentTime === 0){
// do what you want to do on relax
}
}, false);