保存最近x分钟的MediaRecorder数据

时间:2019-03-18 21:05:08

标签: javascript webrtc web-mediarecorder mediadevices

我已将网络摄像头连接到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:好的,它在部分起作用..但不是真的。我删除的前几帧已完全损坏,但是其余的片段看起来都可以正常工作。不过,这不是一个好的解决方案。必须有更好的方法。

0 个答案:

没有答案