隨着海報圖像,我想要一個加載程序圖像(動畫gif)在視頻下載時顯示。這怎麼可能 ?如何將加載器圖像添加到HTML5視頻?
回答
您可以將偵聽器附加到視頻的loadstart
事件,並用它在視頻元素頂部疊加動畫GIF,然後在觸發loadeddata
事件時隱藏加載疊加層。請參閱The W3C's media events draft瞭解您可以接入的事件列表。他們也有demo page for media events。
這是相當複雜的,你必須聽各種視頻事件正確顯示/隱藏&更新加載器映像的寬度。這些事件包括(但不限於):loadstart
,progress
,loadeddata
,waiting
,seeking
,seeked
。您可以使用某個開源播放器(例如jPlayer)或下載其來源以進一步檢查。
一個便宜的方法可能是在poster
屬性中使用動畫GIF,該屬性在視頻開始播放時將被替換。例如:
<video poster="loading.gif" preload="auto" controls autoplay>
<source type="video/mp4" src="video.mp4"/>
</video>
我花了太長時間才弄明白如何做到這一點,但我會在這裏分享它,因爲我最終找到了一個方法!當你考慮它時,這是荒謬的,因爲加載是所有視頻必須做的事情。你會認爲他們會在創建html5視頻標準時考慮到這一點。
我原來的理論,我認爲應該有工作(但不會)是這個
- 添加加載BG圖像視頻通過JS和CSS
- 刪除加載時準備時播放
簡單,對吧?問題在於我無法獲取背景圖像以顯示何時設置了源元素或設置了video.src屬性。天才/運氣的最後一招是(通過實驗)發現,如果海報設置爲某種東西,背景圖像不會消失。我正在使用一張假海報圖片,但我想它可以和一張透明的1x1圖片一起使用(但爲什麼還要擔心有另一張圖片)。所以這使得這可能是一種破解,但它的工作原理,我不必爲我的代碼添加額外的標記,這意味着它將適用於我所有使用html5視頻的項目。
HTML
<video controls="" poster="data:image/gif,AAAA">
<source src="yourvid.mp4"
</video>
CSS(適用於視頻與JS裝載類)
video.loading {
background: black url(/images/loader.gif) center center no-repeat;
}
JS
$('#video_id').on('loadstart', function (event) {
$(this).addClass('loading')
});
$('#video_id').on('canplay', function (event) {
$(this).removeClass('loading')
});
這完全適用於我,但僅適用於Chrome和Safari瀏覽器上測試蘋果電腦。讓我知道是否有人發現錯誤或改進!
這是我對於這個問題的解決方案,因爲pixelearth的回答似乎並沒有對Firefox瀏覽器(可能是用假海報的問題)
HTML
<video id="video1" height="236" preload="auto" controls>
<source src="yourVideo.mp4">
Your browser does not support HTML5 video.
</video>
JS
$('#video1').on('loadstart', function (event) {
$(this).addClass('background');
$(this).attr("poster", "/your/loading.gif");
});
$('#video1').on('canplay', function (event) {
$(this).removeClass('background');
$(this).removeAttr("poster");
});
CSS
video.background {
background: black
}
有了這個答案,你就不必爲了他們沒有做的目的而亂搞假海報或濫用屬性。希望這可以幫助。
P.S.您當然可以添加更多的活動來添加海報屬性,例如如果它不能在視頻的中間進一步發揮,需要更多的緩衝
你可以找到的jsfiddle這表明here
- 1. 如何將下載視頻按鈕添加到HTML5播放器?
- 2. HTML5視頻播放 - 圖像預加載
- 3. 如何將圖像,文本或視頻添加到視頻中
- 4. 將圖像添加到視頻
- 5. 將塊加載到html5視頻
- 6. HTML5視頻加載
- 7. 如何將圖像添加到視圖
- 8. 如何在加載HTML5視頻時製作加載圖片?
- 9. 如何將音頻添加到視頻?
- 10. 將視頻文件從洪流加載到html5視頻
- 11. 如何將活動指示器添加到圖像加載
- 12. 如何添加核心圖像過濾器到OpenTok視頻?
- 13. Aframe將預加載器添加到圖像加載天空
- 14. 目標C:將加載視圖添加到視圖控制器
- 15. 視頻未加載/ html5
- 16. html5視頻預加載
- 17. iPad/iPhone HTML5視頻加載
- 18. jquery視頻html5多個視頻添加
- 19. html5視頻預加載器問題
- 20. 將圖像添加到圖像/視頻OpenCV
- 21. 等到HTML5視頻加載時 - Typescript
- 22. 從URL加載圖像並將其添加到列表視圖
- 23. 如何將視頻添加到燈箱?
- 24. 如何將視頻添加到html中
- 25. 如何將Youtube視頻添加到UITableView?
- 26. 將視頻加載到YTPlayerView
- 27. 推廣將視頻添加到視頻
- 28. 如何在頁面加載時完全加載HTML5視頻?
- 29. 將圖像視圖添加到圖層
- 30. 將視頻添加到Unity3d
不錯的工作在我的代碼! – sputn1k