摘要:具體實現(xiàn)獲取視頻的最后一楨圖片技術能力在前端中可以通過對進行繪圖截取的當前畫面。解決監(jiān)聽的事件,當距小于的時候,開始截取當前的視頻楨,這樣在之前的畫面就是視頻的最后一楨。
問題描述
在ios系統(tǒng)下的safari、wechat、以及其他瀏覽器,在播放部分m3u8的時候,最后一楨的畫面會被系統(tǒng)移出,也就是視覺效果在視頻播放結束的時候會黑屏,并不是全部的視頻都會這樣,目前發(fā)現(xiàn)最后片段時時長小于.5的最后的畫面會被系統(tǒng)移出,未找到相關的文檔描述,目前針對該場景做了個polyfill方案
將視頻的最后一楨作為視頻的背景圖片,這樣在視頻播放結束畫面被移走時就會展示背景圖片,反之有視頻畫面的時候背景就會被覆蓋。具體實現(xiàn)
獲取視頻的最后一楨圖片
a.技術能力:在前端中可以通過canvas對video進行繪圖截取video的當前畫面。 b.問題:但是無法做到截取video任一楨的功能,只能時視頻播放哪里截取到哪里,相當于對視頻進行截圖。 c.探索:監(jiān)聽video的ended事件,但是當ended發(fā)生時,畫面已經(jīng)被系統(tǒng)移出了。 d.解決:監(jiān)聽video的timeupdate事件,當currentTime距duration小于1s的時候,開始截取當前的視頻楨,這樣在ended之前的畫面就是視頻的最后一楨。
將獲取的視頻最后一楨圖片替換為video的背景圖片
視頻截取圖片function video2Base64 (video: HTMLVideoElement) { let dataURL = "", canvas = document.createElement("canvas"); if (video.videoWidth !== 0) { canvas.width = video.videoWidth; canvas.height = video.videoHeight; (canvas.getContext("2d") as CanvasDrawImage).drawImage(video, 0, 0, canvas.width, canvas.height); //繪制canvas dataURL = canvas.toDataURL("image/jpeg"); //轉換為base64 // 將截取的視頻圖片設置為視頻的背景 video.setAttribute("style", `background-image: url(${dataURL}); background-size: contain; background-position: center;background-repeat: no-repeat;`); } }
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/109463.html
摘要:但在下,多數(shù)機子是不顯示視頻畫面的,要不就是顯示一個黑色的還不是全屏的播放控件,即使及加個封面也不濟于是。因為微信的播放器是脫離結構的,也不會響應等事件。 android下html5的視頻播放一直是前端兼容的重災區(qū),各種體驗差,被詬病已久。但之前的故宮穿越H5,和吳亦凡入伍H5,利用的視頻技術,貌似又給人一種新面貌。 前段時間做某項目,恰好也是一個類似視頻全屏的,下面跟大家分享下經(jīng)歷的...
摘要:尤其是喬布斯在年發(fā)布的一篇的文章。喬布斯在里面寫下了關于的一點看法,說明自己為什么不使用,談到關于的一些問題,比如開放性,安全性,對于設備續(xù)航的影響,不利于觸摸屏,等等。終于,于年月日,爸爸也放棄治療了,宣布將于年正式退休。 今天為大家分享一下html5中的視頻(video)與音頻(audio)。在進入主題之前我們先了解一下Flash與html5這兩種技術的時代背景與發(fā)展歷史。 1.前...
閱讀 3853·2021-11-24 09:39
閱讀 1850·2021-11-02 14:41
閱讀 851·2019-08-30 15:53
閱讀 3511·2019-08-29 12:43
閱讀 1225·2019-08-29 12:31
閱讀 3117·2019-08-26 13:50
閱讀 824·2019-08-26 13:45
閱讀 1022·2019-08-26 10:56