我已将网络摄像头连接到PC,因此可以进行记录。每当用户单击按钮时,我都想保存最近的x分钟。这是一些示例代码:
record.onclick = function() {
recorder = new MediaRecorder(localStream, options); //options are MIME type
recorder.ondataavailable = e => {
recordChunk.push(e.data);
};
}
stop.onclick = function() {
recorder.stop();
let blob = new Blob(recordChunk);
element.href = URL.createObjectURL(blob);
element.download = "download.webm";
}
此代码应开始记录并停止记录。我基本上想消除停止按钮,而应该简单地节省最后的x分钟(例如60秒)。
我有个主意,可以在其中删除recordChunk
数组中的前几块数据,但是我不确定应该在数组中保留多少。 recordChunk
内有多少分钟的镜头并不确定。
有什么想法吗?看起来很简单,但是我不确定要从数组中删除多少数据(如果那是正确的方法)。
编辑:好像拼接recordChunk
数组的前几个元素是行不通的(我没有用size: 1
删除第一个元素)。输出文件显然不是有效的WebM。
编辑2:好的,它在部分起作用..但不是真的。我删除的前几帧已完全损坏,但是其余的片段看起来都可以正常工作。不过,这不是一个好的解决方案。必须有更好的方法。