我正在阅读有关HTML5视频标记的文档,并不完全理解它。 如果用户点击播放按钮或控制栏上的播放箭头,我会 认为你只有一个事件,那个事件会表明视频 正在玩。
但我读到了: 音频/视频已启动或不再暂停时,“播放”会触发 暂停后音频/视频准备好播放时,“播放”会触发 或停止缓冲。 听起来第二个只有在您暂停视频然后播放时才会发生 再次, 当第一个发生时,但也发生在你第一次开始视频时。 但为什么这样呢? 为什么不只是一个事件?
答案 0 :(得分:21)
区别的原因是,点击播放按钮(或调用play
方法)后,paused
状态为false
,play
事件将为paused
火,但不能保证视频真正开始播放。它只是“试图”发挥。
如果视频在任何时候没有足够的数据,那么它似乎会暂停(但同样,waiting
将为false)并且readyState
事件将会触发。一旦有足够的数据(且HAVE_FUTURE_DATA
大于或等于playing
),play
事件将会触发,视频将恢复。
因此,出于实际目的,playing
适用于设置播放状态的可视指示器,例如播放/暂停切换按钮上的图标。如果您想知道视频实际播放的时间,请使用waiting
。例如,您可能希望在playing
事件触发时显示旋转的“加载”图标,然后在waiting
触发时删除该图标。
(除了没有足够的数据之外,还有其他原因导致视频无法播放,即使您需要它,但这些可能不会导致playing
和{{1}}事件触发关于HTML standard中的更多细节。)