我们正在尝试拍摄在WebGL画布上播放的视频的快照。但是,当用户单击快照按钮时,捕获的图像有时为黑色。是的-我已经阅读了有关WebGL画布如何与交换一起工作的所有主题,因此我理解了为什么我们会得到黑色图像。不幸的是,由于我们的视频需要具有最高的质量并且无法承受任何减慢的速度,因此我们无法将prepareDrawingBuffer属性设置为true。
我想看看是否可以以编程方式继续拍摄快照,直到获得良好的图像为止。
问题是我不能只使用循环,因为这会阻止画布绘制新图像。因此,如果我只是添加一个while循环并继续调用canvas.toDataURL,它将永远得到相同的黑色图像,因为画布从未被更新。
我正在尝试确定是否存在一种异步捕获画布的方式,以便仍在更新画布。
任何建议将不胜感激。
谢谢。