前言
最近在寫一個(gè)自定義播放器, 寫之前我們肯定要把播放器的屬性和方法全部過(guò)一遍,知彼知己,方能百戰(zhàn)不殆嘛...后面會(huì)把自己寫的播放器和踩過(guò)的一些坑也上傳上來(lái)
video標(biāo)簽行內(nèi)屬性
- src:視頻的URL
- poster:視頻封面,沒(méi)有播放時(shí)顯示的圖片
- preload:預(yù)加載
- autoplay:自動(dòng)播放
- loop:循環(huán)播放
- controls:瀏覽器自帶的控制條
- width:視頻寬度
- height:視頻高度
- webkit-playsinline="true" IOS下防止全屏播放
- playsinline="true" 同上
- x-webkit-airplay="true" 支持ios的AirPlay功能
- x5-video-player-type="h5" 啟用同層H5播放器
- x5-video-player-fullscreen="true" 全屏設(shè)置
- x5-video-orientation="portraint" 豎屏
- style="object-fit:fill" 封面鋪滿
- muted="true" 靜音播放
應(yīng)該還有一些...不過(guò)暫時(shí)沒(méi)用到, 可以去查MDN文檔
video對(duì)象的屬性和方法
1.錯(cuò)誤狀態(tài)
$video.error; //null:正常
$video.error.code; //1.用戶終止 2.網(wǎng)絡(luò)錯(cuò)誤 3.解碼錯(cuò)誤 4.URL無(wú)效
2.網(wǎng)絡(luò)狀態(tài)屬性(有些比較常用)
$video.currentSrc; //返回當(dāng)前資源的URL
$video.src = value; //返回或設(shè)置當(dāng)前資源的URL
$video.canPlayType(type); //是否能播放某種格式的資源
$video.networkState; //0.此元素未初始化 1.正常但沒(méi)有使用網(wǎng)絡(luò) 2.正在下載數(shù)據(jù) 3.沒(méi)有找到資源
$video.load(); //重新加載src指定的資源
$video.buffered; //返回已緩沖區(qū)域,$video.buffered.end(0)拿到最后一刻的數(shù)據(jù)
$video.preload; //none:不預(yù)載 metadata:預(yù)載資源信息 auto:
3.準(zhǔn)備狀態(tài)
$video.readyState; //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA
$video.seeking; //是否正在seeking
4.播放狀態(tài)( 常用 )
$video.currentTime = value; //當(dāng)前播放的位置,賦值可改變位置
$video.duration; //當(dāng)前資源長(zhǎng)度 流返回?zé)o限
$video.paused; //是否暫停
$video.defaultPlaybackRate = value;//默認(rèn)的回放速度,可以設(shè)置
$video.playbackRate = value;//當(dāng)前播放速度,設(shè)置后馬上改變
$video.seekable; //返回可以seek的區(qū)域
$video.ended; //是否結(jié)束
$video.autoPlay; //是否自動(dòng)播放
$video.loop; //是否循環(huán)播放
$video.play(); //播放
$video.pause(); //暫停
5.控制
$video.controls;//是否有默認(rèn)控制條
$video.volume = value; //音量
$video.muted = value; //靜音
video事件方法(常用的加*了)
loadstart //客戶端開(kāi)始請(qǐng)求數(shù)據(jù)
*progress //客戶端正在請(qǐng)求數(shù)據(jù)
suspend //延遲下載
abort //客戶端主動(dòng)終止下載(不是因?yàn)殄e(cuò)誤引起),
*error //請(qǐng)求數(shù)據(jù)時(shí)遇到錯(cuò)誤
stalled //網(wǎng)速失速
*play //play()和autoplay開(kāi)始播放時(shí)觸發(fā)
*pause //pause()觸發(fā)
loadedmetadata //成功獲取資源長(zhǎng)度
*waiting //等待數(shù)據(jù),并非錯(cuò)誤
*playing //開(kāi)始回放
canplay //可以播放,但中途可能因?yàn)榧虞d而暫停
*canplaythrough //可以播放
seeking //資源尋找中
seeked //資源尋找完畢
*timeupdate //播放時(shí)間改變
*ended //播放結(jié)束
ratechange //播放速率改變
durationchange //資源長(zhǎng)度改變
*volumechange //音量改變
基本上自定義播放器代碼都是基于這個(gè)api和屬性來(lái)寫的, 以后方便自己查閱....
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。