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