Javascript 如何复制';结束';循环HTML5视频上的事件

Javascript 如何复制';结束';循环HTML5视频上的事件,javascript,html,video,html5-video,Javascript,Html,Video,Html5 Video,“结束”事件似乎不适用于循环视频(属性循环) 你可以看到我正在检查 持续时间-0.1 这是因为currentTime似乎从未达到完整的持续时间值。 就在播放结束时,下一个时刻(当它重新启动循环时)currentTime为0(零) 有更好的办法吗? 我知道我可以使用一些额外的js导致循环,并使“ended”事件可用,但在这种情况下需要循环属性如果html元素有一个名为loop的属性,则必须将其删除。即使你写过类似于的东西 更新 如果元素上存在循环属性,则永远不会触发结束事件 我建议您手动循环视频并

“结束”事件似乎不适用于循环视频(属性循环)

你可以看到我正在检查

持续时间-0.1

这是因为currentTime似乎从未达到完整的持续时间值。 就在播放结束时,下一个时刻(当它重新启动循环时)currentTime为0(零)

有更好的办法吗?
我知道我可以使用一些额外的js导致循环,并使“ended”事件可用,但在这种情况下需要循环属性

如果html元素有一个名为
loop
的属性,则必须将其删除。即使你写过类似于
的东西

更新

如果元素上存在循环属性,则永远不会触发结束事件
我建议您手动循环视频并删除循环属性。
根据您的评论,您需要在第一次之后循环它。 也许你可以这样做:

$("#video-player").each(function () {
  this.onended = function (e) {
    //Do whatever you want

    this.play();
  }
}
两项建议:

  • 使用Vanillebärs的想法,但在第一个
    oneded
    -事件中,通过js添加
    循环
    -属性

  • 增加
    0.1
    值。当前时间间隔是不规则的!它可能是,它不会在你的100毫秒内抛出。检查它是否在
    1.0
    (1秒)下工作。但是如果你想确保视频真的观看到底,你必须使用
    oneded


请发布视频元素的HTML片段。谢谢,但我需要循环属性,我还需要捕获第一个循环的结尾,循环属性无法消失-这是我的案例所必需的确实,我注意到了不规则性!增加到0.5,看起来很安全,谢谢
        var video = $("#video-player");
        video.on('timeupdate', function(e) {
          if (this.currentTime > this.duration - 0.1) {
            ... do things when playback finished for the first time
          }
        })
$("#video-player").each(function () {
  this.onended = function (e) {
    //Do whatever you want

    this.play();
  }
}