Сохраните последние x минут данных MediaRecorder - PullRequest
0 голосов
/ 19 марта 2019

Я подключил веб-камеру к своему ПК, чтобы я мог записывать.Я хочу сохранить последние 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: Хорошо, он частично работает ... но не совсем.Первые кадры, которые я удаляю, полностью разбиты, но остальные кадры выглядят так, как будто они работают.Не очень хорошее решение.Должен быть лучший способ.

...