国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ios中視頻的最后一楨問題解決

2019-11-19 11:34:50
字體:
供稿:網(wǎng)友

問題描述

在ios系統(tǒng)下的safari、wechat、以及其他瀏覽器,在播放部分m3u8的時候,最后一楨的畫面會被系統(tǒng)移出,也就是視覺效果在視頻播放結(jié)束的時候會黑屏,并不是全部的視頻都會這樣,目前發(fā)現(xiàn)最后片段時時長小于.5的最后的畫面會被系統(tǒng)移出,未找到相關(guān)的文檔描述,目前針對該場景做了個polyfill

方案

將視頻的最后一楨作為視頻的背景圖片,這樣在視頻播放結(jié)束畫面被移走時就會展示背景圖片,反之有視頻畫面的時候背景就會被覆蓋。

具體實現(xiàn)

1、獲取視頻的最后一楨圖片

a.技術(shù)能力:在前端中可以通過canvas對video進行繪圖截取video的當(dāng)前畫面。
b.問題:但是無法做到截取video任一楨的功能,只能時視頻播放哪里截取到哪里,相當(dāng)于對視頻進行截圖。
c.探索:監(jiān)聽video的ended事件,但是當(dāng)ended發(fā)生時,畫面已經(jīng)被系統(tǒng)移出了。
d.解決:監(jiān)聽video的timeupdate事件,當(dāng)currentTime距duration小于1s的時候,開始截取當(dāng)前的視頻楨,這樣在ended之前的畫面就是視頻的最后一楨。

2、將獲取的視頻最后一楨圖片替換為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'); //轉(zhuǎn)換為base64   // 將截取的視頻圖片設(shè)置為視頻的背景   video.setAttribute("style", `background-image: url(${dataURL}); background-size: contain; background-position: center;background-repeat: no-repeat;`);  }}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汝阳县| 广昌县| 鄂托克前旗| 屯昌县| 凤山县| 定安县| 水富县| 大埔区| 军事| 巩留县| 泰兴市| 南开区| 治县。| 襄汾县| 宝清县| 光泽县| 平潭县| 枝江市| 南丰县| 南京市| 普洱| 清涧县| 上犹县| 桦南县| 杭锦旗| 申扎县| 仪征市| 郎溪县| 古浪县| 滦平县| 松原市| 洛阳市| 泌阳县| 花垣县| 泽库县| 桃江县| 庄河市| 临澧县| 维西| 德令哈市| 东乌珠穆沁旗|