10

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

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

4

1 回答 1

26

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

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

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

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

于 2013-01-11T01:02:15.953 回答