Javascript 如何复制';结束';循环HTML5视频上的事件
“结束”事件似乎不适用于循环视频(属性循环) 你可以看到我正在检查 持续时间-0.1 这是因为currentTime似乎从未达到完整的持续时间值。 就在播放结束时,下一个时刻(当它重新启动循环时)currentTime为0(零) 有更好的办法吗?Javascript 如何复制';结束';循环HTML5视频上的事件,javascript,html,video,html5-video,Javascript,Html,Video,Html5 Video,“结束”事件似乎不适用于循环视频(属性循环) 你可以看到我正在检查 持续时间-0.1 这是因为currentTime似乎从未达到完整的持续时间值。 就在播放结束时,下一个时刻(当它重新启动循环时)currentTime为0(零) 有更好的办法吗? 我知道我可以使用一些额外的js导致循环,并使“ended”事件可用,但在这种情况下需要循环属性如果html元素有一个名为loop的属性,则必须将其删除。即使你写过类似于的东西 更新 如果元素上存在循环属性,则永远不会触发结束事件 我建议您手动循环视频并
我知道我可以使用一些额外的js导致循环,并使“ended”事件可用,但在这种情况下需要循环属性如果html元素有一个名为
loop
的属性,则必须将其删除。即使你写过类似于
的东西
更新
如果元素上存在循环属性,则永远不会触发结束事件我建议您手动循环视频并删除循环属性。
根据您的评论,您需要在第一次之后循环它。 也许你可以这样做:
$("#video-player").each(function () {
this.onended = function (e) {
//Do whatever you want
this.play();
}
}
两项建议:
- 使用Vanillebärs的想法,但在第一个
-事件中,通过js添加oneded
-属性循环
- 增加
值。当前时间间隔是不规则的!它可能是,它不会在你的100毫秒内抛出。检查它是否在0.1
(1秒)下工作。但是如果你想确保视频真的观看到底,你必须使用1.0
oneded
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();
}
}