【发布时间】:2021-05-21 07:47:37
【问题描述】:
我做了很长时间的搜索,觉得有必要在这里问一下。我之前使用的 npm 包什么也没做。有没有人做过或经历过这样的应用程序?我要做的就是在画布元素上绘制时将其录制为视频。提前致谢。
【问题讨论】:
标签: javascript record
我做了很长时间的搜索,觉得有必要在这里问一下。我之前使用的 npm 包什么也没做。有没有人做过或经历过这样的应用程序?我要做的就是在画布元素上绘制时将其录制为视频。提前致谢。
【问题讨论】:
标签: javascript record
是的,您可以为此使用MediaStream、captureStream 和MediaRecorder
这是一个示例,在画布上绘制了一些彩色方块,然后使用录制创建了一个视频:
const canvas = document.querySelector('canvas');
const ctx = canvas.getContext('2d');
const stream = canvas.captureStream();
const recorder = new MediaRecorder(stream, { mimeType: 'video/webm' });
const video = document.querySelector('video');
ctx.fillStyle = 'red';
ctx.fillRect(100, 100, 50, 50);
setTimeout(() => {
ctx.fillStyle = 'blue';
ctx.fillRect(200, 50, 50, 50);
}, 1000);
recorder.start();
setTimeout(() => recorder.stop(), 2000);
recorder.addEventListener('dataavailable', (evt) => {
const url = URL.createObjectURL(evt.data);
video.src = url;
});
<canvas></canvas>
<video controls></video>
但基本上,一旦你获得了录音 URL,你就可以用它做任何事情,包括创建下载链接、自动下载录音等。
【讨论】: