html5 播放事件与视频标签中的播放事件

Posted

技术标签:

【中文标题】html5 播放事件与视频标签中的播放事件【英文标题】:html5 play event vs playing event in video tag 【发布时间】:2012-12-25 06:40:01 【问题描述】:

我正在阅读有关 html5 视频标签的文档,但并不完全理解它。 如果用户单击播放按钮或控制栏上的播放箭头,我会 认为您只有一个事件,而该事件表明该视频 正在玩。

但我读到: 当音频/视频已开始或不再暂停时触发“播放” 当音频/视频在暂停后准备好播放时触发'playing' 或停止缓冲。 听起来第二个只有在您暂停视频然后播放时才会发生 再次, 虽然第一个发生在那时,但也发生在您第一次开始播放视频时。 但为什么要这样做? 为什么不只是一个事件?

【问题讨论】:

【参考方案1】:

差异的原因在于,一旦您单击播放按钮(或调用play 方法),paused 状态为false 并且play 事件将触发,但这并不能保证视频将真正开始播放。只是在“尝试”玩。

如果视频在任何时候都没有足够的数据,那么它会出现暂停(尽管paused 将再次为假)并且waiting 事件将触发。一旦有足够的数据(并且readyState 大于或等于HAVE_FUTURE_DATA),playing 事件将触发,视频将继续播放。

因此,出于实际目的,play 非常适合设置播放状态的视觉指示器,例如播放/暂停切换按钮上的图标。如果您想知道视频何时实际播放,请使用playing。例如,您可能希望在waiting 事件触发时显示一个旋转的“加载”图标,然后在playing 触发时移除该图标。

(除了没有足够的数据外,还有其他原因导致视频无法播放,即使您希望它播放,但这些可能不会导致 waitingplaying 事件触发。更多详细信息关于HTML standard.)

【讨论】:

以上是关于html5 播放事件与视频标签中的播放事件的主要内容,如果未能解决你的问题,请参考以下文章

HTML5的Video标签的属性,方法和事件汇总

ReactJS:如何通过反应正确播放带有 onClick 事件的 html5 视频?

视频 html5 元素上的播放事件是啥?

HTML5 video onended 事件触发一次

音频标签的 Html5 延迟“onplay”事件处理程序?

iPad 上缺少 html5 视频“结束”事件