Javascript 使用recordrtc将画布图像录制到视频文件
我正在尝试使用canvas创建一些动画,并将其保存为视频文件。使用,此代码工作得非常完美,但我在获取要录制的带有图像的div时遇到了困难Javascript 使用recordrtc将画布图像录制到视频文件,javascript,html,canvas,html5-canvas,recordrtc,Javascript,Html,Canvas,Html5 Canvas,Recordrtc,我正在尝试使用canvas创建一些动画,并将其保存为视频文件。使用,此代码工作得非常完美,但我在获取要录制的带有图像的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(
<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);
" />
函数视频_创建(){
var ctx=document.getElementById('canvas').getContext('2d');
ctx.save();
ctx.clearRect(0,0,150,150);
var img=document.getElementById(“背景”);
ctx.drawImage(img,100100);
//ctx.restore();
window.requestAnimationFrame(顶部视频创建);
}
window.requestAnimationFrame(顶部视频创建);
var记录器=记录器RTC(画布{
键入:“画布”
});
记录器。开始记录();
setTimeout(函数(){
recorder.stopRecording(函数(){
var blob=recorder.getBlob();
document.body.innerHTML='';
});
}, 5000);
错误是使用了ctx.restore();基本上,它所做的是在绘制之后恢复整个画布,它应该在将新元素绘制到画布之前使用,以便在加载下一帧之前屏幕是空白的。错误是使用了ctx.restore();基本上,它所做的是在绘制之后恢复整个画布,它应该在将新元素绘制到画布之前使用,以便在下一帧加载之前屏幕是空白的。问题是ctx.restore();现在效果很好。谢谢Khan先生。请将答案添加到此页面并标记为“已解决”“.Regards问题是ctx.restore();现在就像一个符咒。谢谢Khan先生。请将答案添加到此页面并标记为“已解决”。当做