最近在寫一個自定義播放器, 寫以前咱們確定要把播放器的屬性和方法所有過一遍,知彼知己,方能百戰不殆嘛...後面會把本身寫的播放器和踩過的一些坑也上傳上來ios
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文檔
1.錯誤狀態web
$video.error; //null:正常 $video.error.code; //1.用戶終止 2.網絡錯誤 3.解碼錯誤 4.URL無效
2.網絡狀態屬性(有些比較經常使用)api
$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.控制ide
$video.controls;//是否有默認控制條 $video.volume = value; //音量 $video.muted = value; //靜音
loadstart //客戶端開始請求數據 *progress //客戶端正在請求數據 suspend //延遲下載 abort //客戶端主動終止下載(不是由於錯誤引發), *error //請求數據時遇到錯誤 stalled //網速失速 *play //play()和autoplay開始播放時觸發 *pause //pause()觸發 loadedmetadata //成功獲取資源長度 *waiting //等待數據,並不是錯誤 *playing //開始回放 canplay //能夠播放,但中途可能由於加載而暫停 *canplaythrough //能夠播放 seeking //資源尋找中 seeked //資源尋找完畢 *timeupdate //播放時間改變 *ended //播放結束 ratechange //播放速率改變 durationchange //資源長度改變 *volumechange //音量改變
基本上自定義播放器代碼都是基於這個api和屬性來寫的, 之後方便本身查閱....oop