问题背景:
遇到一个需求,要对播放的视频进行截图,视频使用video标签来播放,然后点击视频播放区域时截取实时的帧图片。
代码很简单如下:
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.
经过查阅和分析,发现这个其实是由于视频文件所在的域和图片和页面所在域不同,出现跨域传输的问题。
解决方案:
将视频文件放到页面所在域下。
原文地址:http://blog.csdn.net/luochao_tj/article/details/44942125