场景是这样的,业务上有一个视频通话,视频窗口是canvas的,有需求要做截图的功能,而且截图需要是canvas的。
代码基本是这个样子的
html
js
$('#snap-button').on('click', function () {
var source = $('#video')[0];
var target = $('#photo')[0];
var context = target.getContext('2d');
context.drawImage(source, 0, 0, 800, 600);
});
然而神奇的一幕发生了,点击按钮测试截图效果,大概七八十回有一两回能截图成功,而且还是反的。
我试过如果把需要截图的视频canvas替换成一个静态的canvas,截图是100%成功的,那么问题来了,我该怎么保证动态的视频canvas能够截图成功呢?谢谢。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
后来测试了一下,基于video标签的视频截图不会出问题,比如WebRTC那样的,同时动态的canvas也不会出问题。
这就很尴尬了。
最后用了这个蠢办法先解决一下,blankData是截图失败的空白canvas出来的数据,我自己new出来的canvas结果跟它还不一样,蛋疼的很,等到真正解决了再回来补充。