Javascript 在未重新加载页面的情况下更改视频时,HTML5视频元素缺少结束事件

Javascript 在未重新加载页面的情况下更改视频时,HTML5视频元素缺少结束事件,javascript,youtube,html5-video,dom-events,Javascript,Youtube,Html5 Video,Dom Events,我正在使用以下代码分离视频事件: var HTML5VideoEvents = ["playing","pause","ended","seeked"]; var videos = win.document.getElementsByTagName("video"); for (var i = 0; i < videos.length; i++){ for (var j = 0; j &

我正在使用以下代码分离视频事件:

var HTML5VideoEvents = ["playing","pause","ended","seeked"];
var videos = win.document.getElementsByTagName("video");
for (var i = 0; i < videos.length; i++){
  for (var j = 0; j < HTML5VideoEvents.length; j++){
    videos[i].addEventListener(HTML5Events[j], videoEvenDetected, false);
  }
}

但是上面的代码并不总是有效的。在Firefox和Safari上,在检测到上一个视频的重置事件之前,会观察到下一个视频的事件。我还需要关于上一个视频当前时间、url、curSRC、下一个视频开始前的持续时间的信息。

我建议您查看媒体元素的加载算法,该算法指定媒体事件的触发顺序。如您所述,
清空
事件在
当前时间
后触发,其他变量被重置。。。。这是有道理的,但对于您的用例来说是不幸的

你能把
end
事件记录下来吗?如果事件已触发,请将视频标记为已结束。否则,假设它已被暂停。您还可以在每次暂停视频时记录currentTime和src,然后在触发
清空后使用这些值

我很想知道你是否能找到一个更优雅的解决方案

videos[i].addEventListener("emptied", detectVideoReset, false);