Событие MediaRecorder 'ondataavailable' не запускается - PullRequest
0 голосов
/ 01 апреля 2020

Вот мой полный код для отображения и записи в реальном времени аудио и видео ( и более поздней загрузки блока больших двоичных объектов на сервер ):

$(function () {
    var handleSuccess = function(stream) {

        var player = document.querySelector("#vid-user");
        player.srcObject = stream;

        console.log("Starting media recording")
        var options = {mimeType: 'video/webm'};
        var recordedChunks = [];
        var mediaRecorder = new MediaRecorder(stream, options);

        mediaRecorder.ondataavailable = function(e) {
            console.log("Data available")
            if (e.data.size > 0) {
                recordedChunks.push(e.data);
                var url = URL.createObjectURL(new Blob(recordedChunks));
                console.log("URL: " + url)
            }
        }

        mediaRecorder.start();
    };
    navigator.mediaDevices.getUserMedia({ audio: true, video: true })
        .then(handleSuccess)
})

Воспроизведение видео работает, но проблема в том, что mediaRecorder.ondataavailable не вызывается / не вызывается. В чем может быть проблема здесь?

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Метод start() принимает необязательный параметр с именем timeslice. Если вы не укажете этот параметр, событие dataavailable срабатывает только после вызова stop() для MediaRecorder.

https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/start

0 голосов
/ 01 апреля 2020

Решение состоит в том, чтобы установить

mediaRecorder.start(1000); // where 1000 is the interval
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...