簡體   English   中英

Chrome視頻元素可播放未觸發的事件

[英]Chrome video element canplay event not firing

在Windows 7和Linux(Ubuntu 13.10)上的Chrome 31中, 視頻元素上的事件處理程序,注冊canplay (和oncanplay ,只是為了確保)永遠不會觸發。 當我檢查DOM節點時,沒有oncanplay屬性。 規范說它應該存在。 有沒有人知道Chrome何時或是否支持此活動?

Chrome 確實支持canplay活動。 您沒有看到它,因為檢查器僅顯示所有元素上的屬性,而不僅僅是媒體元素。 它也沒有顯示loadedmetadatadurationchange等,但Chrome肯定支持那些。

我沒有看到你的代碼,但我猜你可能會看到事件觸發的原因(假設你正在正確地聽它)是你錯過了這個事件。 除非您在視頻中略微跳過, canplay只會觸發一次。 因此,如果事件在您附加偵聽器之前觸發,則為時已晚。

相反,你可以檢查狀態,就像這樣......

//assume you've already set up the video variable to point to your video element
if (video.readyState >= video.HAVE_FUTURE_DATA) {
    console.log('video can play!');
} else {
    video.addEventListener('canplay', function () {
        console.log('video can play!');
    }, false);
}

(根據您要完成的任務,您可能希望以任一方式附加事件偵聽器。如果您的緩沖數據用完,視頻的readyState可以恢復,並且canplay可能會再次觸發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM