問題背景:
遇到一個需求,要對播放的視頻進行截圖,視頻使用video標簽來播放,然后點擊視頻播放區(qū)域時截取實時的幀圖片。
代碼很簡單如下:
JavaScript Code復制內容到剪貼板
- var video = document.getElementById('video');
-
- var canvas = document.getElementById('canvas');
-
- var ctx = canvas.getContext('2d');
-
- var img = document.getElementById('img');
-
- function snapshot() {
- ctx.drawImage(video,0,0);
- img.src = canvas.toDataURL('image/png');
- }
-
- video.addEventListener('click', snapshot, false);
問題提示:
Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
經過查閱和分析,發(fā)現(xiàn)這個其實是由于視頻文件所在的域和圖片和頁面所在域不同,出現(xiàn)跨域傳輸的問題。
解決方案:
將視頻文件放到頁面所在域下。
原文地址:http://blog.csdn.net/luochao_tj/article/details/44942125