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

时间:2017-06-25 20:11:15

标签: javascript html5 canvas html5-canvas recordrtc

我正在尝试使用画布创建一些动画并使用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);

1 个答案:

答案 0 :(得分:0)

错误是使用ctx.restore();基本上它的作用是在绘制后恢复整个画布,它应该在将新元素绘制到画布之前使用,以便在下一帧加载之前屏幕是空白的。