一、基礎(chǔ)知識(shí)
1.用法
<video src="./video/mv.mp4">video>
注意:audio和video元素必須同時(shí)包含開始和結(jié)束標(biāo)簽,不能使用
2.重要HTML屬性
controls:ontrol:如果出現(xiàn)該屬性,則向用戶顯示控件,比如播放按鈕。每個(gè)瀏覽器中的播放控件都不太一樣,但用途都一樣,都可以控制開始和結(jié)束,跳到新位置和調(diào)節(jié)音量
autoplay:autoplay:如果出現(xiàn)該屬性,則視頻在就緒后馬上播放。如果不設(shè)置autoplay屬性,必須是用戶單擊播放按鈕才會(huì)播放音頻文件。
loop:loop:(循環(huán)播放)告訴瀏覽器在音頻到達(dá)末尾時(shí),再?gòu)念^開始重新播放
preload:auto、mete、none:告訴瀏覽器如何下載音頻
- auto:讓瀏覽器下載整個(gè)文件,以便用戶單擊播放按鈕時(shí)就能播放。當(dāng)然,下載過程是后臺(tái)進(jìn)行的,網(wǎng)頁訪客不必等待下載完成,而且仍然可以隨意查看網(wǎng)頁。
- meta:告訴瀏覽器先獲取音頻文件開頭的數(shù)據(jù)塊,從而足以確定一些基本信息(比如音頻的總時(shí)長(zhǎng))
- none:**告訴瀏覽器不必預(yù)先下載。恰當(dāng)?shù)乩眠@些值,可以節(jié)省帶寬。
如果沒有設(shè)置preload屬性,瀏覽器就自己決定是否預(yù)先下載了。對(duì)這一點(diǎn),不同瀏覽器的處理方式也不一樣。多數(shù)瀏覽器將auto作為默認(rèn)值,但Firefox的默認(rèn)值是metadata。不過,也請(qǐng)大家注意,這個(gè)preload屬性也不是必須嚴(yán)格執(zhí)行的規(guī)則,而只是你對(duì)瀏覽器的建議。根據(jù)具體情況,瀏覽器可以忽略你的設(shè)置。(有些舊版本瀏覽器根據(jù)不會(huì)在意preload屬性。)
3.常用事件
事件名稱 : 解釋
oncanplay:當(dāng)文件就緒可以開始播放時(shí)運(yùn)行的腳本(緩沖已足夠開始時(shí))。
ontimeupdate: 當(dāng)播放位置改變時(shí)(比如當(dāng)用戶快進(jìn)到媒介中一個(gè)不同的位置時(shí))運(yùn)行的腳本。
onended:當(dāng)媒介已到達(dá)結(jié)尾時(shí)運(yùn)行的腳本(可發(fā)送類似“感謝觀看”之類的消息)。
4.常用方法
方法名稱 :解釋
play():開始播放音頻/視頻
pause():暫停當(dāng)前播放的音頻/視頻
5.常用API屬性
屬性名稱 : 解釋
duration:返回當(dāng)前音頻/視頻的長(zhǎng)度(以秒計(jì))
paused:設(shè)置或返回音頻/視頻是否暫停
currentTime:設(shè)置或返回音頻/視頻中的當(dāng)前播放位置(以秒計(jì))
ended:返回音頻/視頻的播放是否已結(jié)束
更多屬性、事件、方法請(qǐng)查看w3school
二、打造自己的播放器
我們使用JavaScript控制播放控件的行為(自定義播放控件),實(shí)現(xiàn)如下功能:
- 利用HTML+CSS制作一個(gè)自己的播放控件條,然后定位到視頻最下方
- 視頻加載loading效果
- 播放、暫停
- 總時(shí)長(zhǎng)和當(dāng)前播放時(shí)長(zhǎng)顯示
- 播放進(jìn)度條
- 全屏顯示