更改视频元素的 currentTime 时要查找什么事件

问题描述 投票:0回答:2

当我将视频元素当前时间更改为未缓冲的时间点时,视频停止播放。我想知道它何时开始播放第一帧。

我尝试过canplay和play都没有成功。

虽然我确实通过使用播放和暂停让它工作。

因此,当我暂停时,它可以播放事件,然后我听它,它告诉我,在我现在暂停的新位置可以播放。然后我就玩它。是否、应该、可以不间断地做到这一点?为什么没有像ajax中那样的readystatechange。如果视频暂停、停止、等待缓冲(如我的情况)会触发一个事件。

javascript html5-video
2个回答
1
投票

所有媒体元素事件的列表应该会有所帮助:
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#event-definitions

如果您只是在播放且视频自行暂停,则

waiting

playing
 事件应该是相关的。当视频因缓冲来自网络的数据而被迫暂停时,
waiting
 会触发,当视频准备好恢复时,
playing
 会触发。值得注意的是 
play
playing
 之间的区别。当“尝试”播放时,
play
 会触发,即 
.paused === false
。但是 
playing
 意味着它正在 
实际上 播放(尽管有一些奇怪的情况,这并不完全正确,如链接文档中所述)。

但是,如果您正在寻找,则可以使用

seeking

seeked
 事件。我要做的就是监听所有四个事件以及 
canplay
,并检查其中的 
.readyState
 属性。


0
投票
您可以查看媒体元素的

timeupdate

 事件。

timeupdate

 属性指示的时间已更新时,会触发 
currentTime
 事件。

addEventListener("timeupdate", (event) => { // Do whatever you want });
详细版本在这里:

MDN/timeupdate

© www.soinside.com 2019 - 2024. All rights reserved.