有什么方法可以将Blob数组保存到txt文件中,并且在读取并播放后作为Video

时间:2018-09-21 14:13:21

标签: javascript canvas video-streaming

我正在与MediaRecoder合作,将画布动作另存为Video。(格式无关紧要)

var recordedBlobs =[];
var stream = canvas.captureStream();
var mediaRecorder = new MediaRecorder(stream, options);

captureStream函数收集我的canvas编辑的数据,并且我正在使用此函数保存该数据。

 function handleDataAvailable(event) {
            if (event.data && event.data.size > 0) {
                recordedBlobs.push(event.data);
            }
        }

当停止录制流时,我正在调用此函数以将录制的Blob播放为视频。

function handleStop(event) {
            debugger;
            console.log('Recorder stopped: ', event);
            const superBuffer = new Blob(recordedBlobs, { type:'video/webm'});
            video.src = window.URL.createObjectURL(superBuffer);
        }

工作正常。 Videoplayer开始将我的画布数据作为视频播放。 但是我想将此值记录到txt文件或类似的文件中。原因是此画布操作可能需要1个小时,视频大小可能是1 GB,然后更多。我的目标是在另一页中阅读此txt并将其作为视频播放,但我不知道该怎么做。

我保存这些数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您就在那里,只需添加

const superBuffer = new Blob(recordedBlobs, { type:'video/webm'});
let objUrl = window.URL.createObjectURL(superBuffer);
let anchor = document.createElement('a');
anchor.href = objUrl;
anchor.setAttribute('download', 'YourFileName.txt');
anchor.click();