我正在阅读有关 HTML5 视频标签的文档,但并不完全理解它。如果用户单击播放按钮或控制栏上的播放箭头,我会认为您只有一个事件,该事件将指示视频正在播放。
但我读到:“播放”在音频/视频已启动或不再暂停时触发。“播放”在音频/视频在暂停或停止缓冲后准备好播放时触发。听起来第二个只有在您暂停视频然后再次播放时才会发生,而第一个会在那时发生,但也会在您第一次开始播放视频时发生。但为什么要这样做?为什么不只是一个事件?
我正在阅读有关 HTML5 视频标签的文档,但并不完全理解它。如果用户单击播放按钮或控制栏上的播放箭头,我会认为您只有一个事件,该事件将指示视频正在播放。
但我读到:“播放”在音频/视频已启动或不再暂停时触发。“播放”在音频/视频在暂停或停止缓冲后准备好播放时触发。听起来第二个只有在您暂停视频然后再次播放时才会发生,而第一个会在那时发生,但也会在您第一次开始播放视频时发生。但为什么要这样做?为什么不只是一个事件?
造成差异的原因是,一旦您单击播放按钮(或调用play
方法),paused
状态为false
并且play
事件将触发,但这并不能保证视频会真正开始播放。这只是“尝试”玩。
如果在任何时候视频没有足够的数据,那么它会出现暂停(虽然,再次,paused
将是错误的)并且waiting
事件将触发。一旦有足够的数据(并且readyState
大于或等于HAVE_FUTURE_DATA
),playing
事件将触发并且视频将继续播放。
因此,出于实际目的,play
它非常适合设置播放状态的视觉指示器,例如播放/暂停切换按钮上的图标。如果playing
您想知道视频何时实际播放,请使用。例如,您可能希望在waiting
事件触发时显示一个旋转的“正在加载”图标,然后在playing
触发时移除该图标。
(除了没有足够的数据外,还有其他原因导致视频无法播放,即使您想要它,但这些可能不会导致waiting
andplaying
事件触发。有关HTML 标准的更多详细信息。)