91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-13 13:00:38 來源:腳本之家 閱讀:443 作者:rascalhao 欄目:web開發

問題描述

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

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

方案

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

具體實現

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

a.技術能力:在前端中可以通過canvas對video進行繪圖截取video的當前畫面。
b.問題:但是無法做到截取video任一楨的功能,只能時視頻播放哪里截取到哪里,相當于對視頻進行截圖。
c.探索:監聽video的ended事件,但是當ended發生時,畫面已經被系統移出了。
d.解決:監聽video的timeupdate事件,當currentTime距duration小于1s的時候,開始截取當前的視頻楨,這樣在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'); //轉換為base64
   // 將截取的視頻圖片設置為視頻的背景
   video.setAttribute("style", `background-image: url(${dataURL}); background-size: contain; background-position: center;background-repeat: no-repeat;`);
  }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普安县| 郁南县| 灌阳县| 鄂托克前旗| 松溪县| 无棣县| 许昌市| 抚松县| 和田市| 乐安县| 镶黄旗| 旺苍县| 象山县| 吴忠市| 南乐县| 鄯善县| 盘锦市| 汶川县| 玉屏| 岫岩| 麻城市| 阳西县| 乡宁县| 布尔津县| 屏东市| 交城县| 仁怀市| 宜黄县| 临清市| 松潘县| 洪湖市| 镇巴县| 岳阳市| 孝昌县| 乌拉特中旗| 江华| 吉安市| 汉沽区| 韶山市| 平泉县| 龙门县|