2013-01-10 54 views
4

我正在閱讀有關HTML5視頻標籤的文檔,並不完全瞭解它。 如果用戶點擊播放按鈕或控制欄上的播放箭頭,我會認爲你只有一個事件,並且該事件將指示視頻 正在播放。html5玩事件vs玩視頻標籤中的事件

但我讀到: 「玩」火災時,音頻/視頻已啓動或已不再暫停 「玩」火災時,音頻/視頻準備已經暫停 後播放或停止緩衝。 聽起來像第二個只發生在暫停視頻,然後再次播放 , 而第一個發生的時候,但也會在您第一次啓動視頻時發生。 但爲什麼呢? 爲什麼不只是一個事件?

回答

15

的原因不同的是,一旦你點擊播放按鈕(或者叫play方法),paused狀態是falseplay事件將觸發,但是這不能保證視頻將真正開始播放。這只是「嘗試」玩。

如果在任何時候視頻沒有足夠的數據,那麼它會顯示暫停(但是,paused將再次爲false),並且waiting事件將觸發。一旦有足夠的數據(並且readyState大於或等於HAVE_FUTURE_DATA),則playing事件將觸發並且視頻將恢復。

因此,出於實用目的,play適合設置播放狀態的視覺指示,如播放/暫停切換按鈕上的圖標。使用playing如果你想知道什麼時候視頻是實際上是在玩。例如,您可能想在waiting事件觸發時顯示旋轉的「加載」圖標,然後在playing觸發時刪除該圖標。

(除了沒有足夠的數據,還有其他一些原因,即使您希望視頻不會播放,但這些可能不會導致waitingplaying事件觸發。 )