最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年05月14日 10:33:58   作者:rascalhao  
這篇文章主要給大家介紹了關(guān)于ios中視頻的最后一楨問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

問題描述

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

方案

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

具體實(shí)現(xiàn)

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

a.技術(shù)能力:在前端中可以通過canvas對video進(jìn)行繪圖截取video的當(dāng)前畫面。
b.問題:但是無法做到截取video任一楨的功能,只能時(shí)視頻播放哪里截取到哪里,相當(dāng)于對視頻進(jìn)行截圖。
c.探索:監(jiān)聽video的ended事件,但是當(dāng)ended發(fā)生時(shí),畫面已經(jīng)被系統(tǒng)移出了。
d.解決:監(jiān)聽video的timeupdate事件,當(dāng)currentTime距duration小于1s的時(shí)候,開始截取當(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í)價(jià)值,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論

大城县| 延庆县| 衢州市| 陵水| 曲水县| 南宁市| 乌海市| 焦作市| 兰西县| 炎陵县| 梓潼县| 衡水市| 湘西| 长葛市| 巫山县| 昂仁县| 聂拉木县| 万安县| 泗洪县| 五大连池市| 长葛市| 宁安市| 婺源县| 扎兰屯市| 棋牌| 东乌| 大宁县| 宁夏| 岳阳县| 贞丰县| 厦门市| 和田县| 镇坪县| 垦利县| 邯郸市| 杭锦旗| 大邑县| 嵊州市| 巴中市| 扎赉特旗| 陆丰市|