Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用recordrtc将画布图像录制到视频文件_Javascript_Html_Canvas_Html5 Canvas_Recordrtc - Fatal编程技术网

Javascript 使用recordrtc将画布图像录制到视频文件

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(

我正在尝试使用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(){
  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先生。请将答案添加到此页面并标记为“已解决”。当做