Есть ли способ сохранить массив Blob в текстовый файл и после чтения и воспроизведения как видео - PullRequest
0 голосов
/ 21 сентября 2018

Я работаю с MediaRecoder для сохранения действий холста как видео. (Формат не имеет значения)

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

Функция captureStream собирает отредактированные данные моих полотен, и я сохраняю эти данные с помощью этой функции.

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

Когда останавливается запись потока, я вызываю эту функцию для воспроизведения моих записанных блобов как видео.

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

Работает нормально.Видеоплеер начинает воспроизводить мои данные холста как видео.Но я хочу записать эти значения в текстовый файл или что-то в этом роде. Причина в том, что действия с холстом могут занимать 1 час, а размер видео может составлять 1 ГБ и более.Моя цель - прочитать этот текст на другой странице и воспроизвести эти данные как видео, но я не знаю, как я могу это сделать.

Как мне лучше всего сохранить эти данные?

1 Ответ

0 голосов
/ 21 сентября 2018

Вы в значительной степени там, просто добавьте

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();
...