HTML5的多個video標簽:截取視頻源的封面圖poster扎狱,監(jiān)聽視頻播放狀態(tài)的功能侧到;

在日常項目中,html5的video標簽還是比較常用到的淤击,開發(fā)過程中匠抗,我們都會使用到,通過監(jiān)聽video標簽的播放污抬、暫停汞贸、停止等等來使用;

但我們是否也會遇到過印机,有些瀏覽器在顯示這標簽矢腻,兼容不太友好,video標簽的封面是一層黑色的耳贬,而不是視頻的封面圖踏堡。

那么,此時咒劲,我們就得截取每個視頻的封面圖來顷蟆,因為video標簽有個屬性poster是用來儲存封面圖地址的诫隅,但需注意先用本地視頻,非本地視頻會有跨域截取問題帐偎,這個得跟后端開發(fā)協(xié)作處理逐纬。


代碼如下:

<div class="video-con">

<video class="video"? poster="">

? ? ? ? <source src="1.mp4" >

? ? </video>

? ? <button type="button" class="btn js-play-btn"></button>

</div>

<div class="video-con">

? ? <video class="video" poster="">

? ? ? ? <source src="2.mp4" >

? ? </video>

? ? <button type="button" class="btn js-play-btn"></button>

</div>

//視頻------視頻截圖 ~~ 視頻播放狀態(tài) ~~

constsetMedia=function(video,scale=0.8) {

//設置poster屬性:(非本地視頻資源會有跨域截圖問題)

video.addEventListener('loadeddata',function(e) {

//拿到圖片

letcanvas=document.createElement('canvas');

canvas.width=video.videoWidth*scale;

canvas.height=video.videoHeight*scale;

canvas.getContext('2d').drawImage(video,0,0,canvas.width,canvas.height);

letsrc=canvas.toDataURL('image/png');

//顯示在dom,測試用

(function(flag=true) {

if(!flag) {return;}

letimg=document.createElement('img');

img.src=src;

document.body.appendChild(img);

})(0);

//設置屬性

video.setAttribute('poster', src);

? ? ? ? });

//-------------------------------------------------------------------------------------

//檢測視頻播放狀態(tài):

//播放按鈕

letplayBtn=video.parentNode.childNodes[2].nextSibling;

//設置狀態(tài)

functionvidplaySate(e) {

if(video.paused) {

video.play();

playBtn.classList.add('pause');

}else{

video.pause();

playBtn.classList.remove('pause');

? ? ? ? ? ? }

? ? ? ? }

//點擊監(jiān)聽

video.addEventListener('click', vidplaySate,false);

playBtn.addEventListener('click', vidplaySate,false);

//結束監(jiān)聽

video.addEventListener('ended',function() {

playBtn.classList.remove('pause');

? ? ? ? });

? ? };

//視頻:

letvideos=document.querySelectorAll('video');

videos.forEach((video)=>{

setMedia(video);

? ? });


有什么錯誤或優(yōu)化的地方削樊,可以提出來豁生,大家一起學習研究…

整個案例,可以訪問本人github下載https://github.com/xiexikang/html5-video-poster

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伶贰,更是在濱河造成了極大的恐慌,老刑警劉巖芍殖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谴蔑,居然都是意外死亡豌骏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門隐锭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窃躲,“玉大人,你說我怎么就攤上這事钦睡〉僦希” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵荞怒,是天一觀的道長刘绣。 經(jīng)常有香客問我,道長挣输,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任福贞,我火速辦了婚禮撩嚼,結果婚禮上,老公的妹妹穿的比我還像新娘挖帘。我一直安慰自己完丽,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布拇舀。 她就那樣靜靜地躺著逻族,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骄崩。 梳的紋絲不亂的頭發(fā)上聘鳞,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天薄辅,我揣著相機與錄音,去河邊找鬼抠璃。 笑死站楚,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的搏嗡。 我是一名探鬼主播窿春,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼采盒!你這毒婦竟也來了旧乞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤磅氨,失蹤者是張志新(化名)和其女友劉穎尺栖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悍赢,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡决瞳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了左权。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皮胡。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赏迟,靈堂內(nèi)的尸體忽然破棺而出屡贺,到底是詐尸還是另有隱情,我是刑警寧澤锌杀,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布甩栈,位于F島的核電站,受9級特大地震影響糕再,放射性物質(zhì)發(fā)生泄漏量没。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一突想、第九天 我趴在偏房一處隱蔽的房頂上張望殴蹄。 院中可真熱鬧,春花似錦猾担、人聲如沸袭灯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稽荧。三九已至,卻和暖如春工腋,著一層夾襖步出監(jiān)牢的瞬間姨丈,已是汗流浹背畅卓。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留构挤,地道東北人髓介。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像筋现,于是被迫代替她去往敵國和親唐础。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354