2016-12-01 134 views
2

我正在尋找一種方法來設置一個HTML5視頻元素之前超時報告網絡錯誤(HTML5 media element error code 2有沒有辦法指定HTML5視頻元素的超時時間?

測試時,我發現,如果我停止了互聯網連接,視頻元素掛起,是在顯示媒體錯誤代碼2之前似乎緩衝了很長時間。我可以減少這個時間嗎?

也有一些情況下,它根本沒有報告錯誤,它似乎永遠緩衝。是否有一個原因?

回答

1

不幸的是,我認爲你不能,它取決於每個瀏覽器供應商的實施。根據HTML5視頻spec資源內取指算法你可以閱讀:

失速超時定義的時間長度的用戶代理,這應該是約三秒鐘當活動嘗試獲取媒體數據的媒體元素在等待暫停超時的持續時間內未能接收到任何數據時,用戶代理必須對任務排隊,以觸發在元素處命名爲stalled的簡單事件。

用戶代理可能允許用戶選擇性地阻止或減慢媒體數據下載。當媒體元素的下載完全被阻止時,用戶代理必須像停止播放(而不是像連接關閉一樣)。下載速度也可以由用戶代理自動調節,例如,以平衡下載與其他共享相同帶寬的連接。

用戶代理可能決定不隨時下載更多內容,例如,在緩衝一小時媒體資源的五分鐘之後,在等待用戶決定是否播放資源的同時,或等待用戶在交互資源中的輸入之後。 當媒體元素的下載已被掛起時,用戶代理必須將networkState設置爲NETWORK_IDLE,並排列任務以在元素處觸發一個名爲suspend的簡單事件。如果和當下載資源恢復時,用戶代理必須將networkState設置爲NETWORK_LOADING

+0

有沒有辦法僞造或模擬媒體錯誤代碼2來測試,正確處理/優雅? – shrewdbeans

+0

'MEDIA_ERR_NETWORK = 2。某些描述的網絡錯誤導致用戶代理在資源建立後可停止獲取媒體資源。因此,我想,只需拔掉您的互聯網並使用HTML5事件https://developer.mozilla.org/zh-CN/docs/Web/Guide/Events/Media_events您可以處理任何可能的錯誤。 –

+0

如果瀏覽器不響應,可能是瀏覽器中的問題。該規範僅描述了行爲,瀏覽器供應商對實施負責。 –

相關問題