[英]Chrome video element canplay event not firing
在Windows 7和Linux(Ubuntu 13.10)上的Chrome 31中, 視頻元素上的事件處理程序,注冊canplay (和oncanplay ,只是為了確保)永遠不會觸發。 當我檢查DOM節點時,沒有oncanplay屬性。 規范說它應該存在。 有沒有人知道Chrome何時或是否支持此活動?
Chrome 確實支持canplay
活動。 您沒有看到它,因為檢查器僅顯示所有元素上的屬性,而不僅僅是媒體元素。 它也沒有顯示loadedmetadata
, durationchange
等,但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.