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

时间:2013-01-10 18:59:56

标签: video html5-video

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

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

1 个答案:

答案 0 :(得分:21)

区别的原因是,点击播放按钮(或调用play方法)后,paused状态为falseplay事件将为paused火,但不能保证视频真正开始播放。它只是“试图”发挥。

如果视频在任何时候没有足够的数据,那么它似乎会暂停(但同样,waiting将为false)并且readyState事件将会触发。一旦有足够的数据(且HAVE_FUTURE_DATA大于或等于playing),play事件将会触发,视频将恢复。

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

(除了没有足够的数据之外,还有其他原因导致视频无法播放,即使您需要它,但这些可能不会导致playing和{{1}}事件触发关于HTML standard中的更多细节。)