我使用HTML5画布拍摄视频标签的屏幕截图。这大约有80%的时间用于Chrome。另外20%的时间我得到了"无法执行' toDataURL' on' HTMLCanvasElement':受污染的画布可能无法导出"错误。我假设这是因为视频源不支持CORS。
我尝试添加属性' videoTag.attr(' crossorigin',' anonymous');'到视频标签,但似乎没有帮助。
所以我的问题是,无论如何要判断视频标签是否支持CORS?
// Get handles on the video element
var video = videoContainer[0];
var canvas = jQuery('#temp-canvas')[0];
var context = canvas.getContext('2d');
canvas.width = 640;
canvas.height = 360;
// Define the size of the rectangle that will be filled (basically the entire element)
context.fillRect(0, 0, 640, 390);
// Grab the image from the video
context.drawImage(video, 0, 0, canvas.width, canvas.height);
//return the url so we can use it
//Failed to execute toDataURL exception thrown here
imageUrl = canvas.toDataURL();
答案 0 :(得分:1)
由于您正在测试错误条件而不是浏览器功能,因此您可以使用try-catch
块。