CSS canvas 捕捉視頻video元素截圖


video元素介紹:

http://www.runoob.com/html/html5-video.html

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/video

video元素dom-webapi(屬性、方法、事件)

http://www.runoob.com/tags/ref-av-dom.html

canvas dom-webapi

http://www.w3school.com.cn/jsref/dom_obj_canvas.asp

視頻捕捉截圖:

// 添加一個video元素
(function(window){
        let video=document.createElement("video");
        video.src = "/storage/emulated/0/UZMap/A6097221144053/aliyunvod/1553142977717.mp4";
        // video.autoplay = true;
        video.id = "video";
        video.currentTime = 1;
        document.body.appendChild(video);

})();

// 繪制canvas畫布、獲取data
function getData(){
      let v = document.getElementById("video");
      let canvas=document.createElement("canvas");
      let ctx = canvas.getContext("2d");
      ctx.drawImage(v, 0, 0, 270, 135);
      // document.body.appendChild(canvas);
      console.log(canvas.toDataURL());
 }        

TIPS:

在獲取dataURL 時,如果為移動端有可能出現以下問題:

Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may

原因:由於瀏覽器的安全考慮,如果在使用canvas繪圖的過程中,使用到了外域的圖片資源,那么在toDataURL()時會拋出安全異常。

解決方案1.

如果想使用toDataURL()生成圖片文件的話,在canvas繪圖過程中使用的圖片應該是當前域下的。

解決方案2.

訪問的服務器允許,資源跨域使用,也就是說設置了CORS跨域配置,Access-Control-Allow-Origin。

 

個人使用的是第一種方法:使用當前域下的資源,訪問native 資源即可。

參考地址:https://blog.csdn.net/u013040887/article/details/78986598

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM