我正在尝试使用画布创建一些动画并使用RecordRTC将其保存为视频文件,这段代码非常完美,但是我很难将div与图像一起录制。
<div style="display:none;" id="background_goa">
<img src="Http://domain/wp-content/themes/custom/images/top10-bg-goa.png'; ?>" />
</div>
function video_create(){
var ctx = document.getElementById('canvas').getContext('2d');
ctx.save();
ctx.clearRect(0, 0, 150, 150);
var img = document.getElementById("background_goa");
ctx.drawImage(img,100,100);
// ctx.restore();
window.requestAnimationFrame(top_video_create);
}
window.requestAnimationFrame(top_video_create);
var recorder = RecordRTC(canvas, {
type: 'canvas'
});
recorder.startRecording();
setTimeout(function(){
recorder.stopRecording(function() {
var blob = recorder.getBlob();
document.body.innerHTML = '<video controls src="' + URL.createObjectURL(blob) + '" autoplay loop></video>';
});
}, 5000);
答案 0 :(得分:0)
错误是使用ctx.restore();基本上它的作用是在绘制后恢复整个画布,它应该在将新元素绘制到画布之前使用,以便在下一帧加载之前屏幕是空白的。