Рендеринг захваченного видео в Video Canvas - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть этот код, который захватывает / записывает видео с камеры / аудио каждую секунду

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

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

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

        mediaRecorder.ondataavailable = function(e) {
            console.log("Data available")
            if (e.data.size > 0) {
                // How do I display the captured video to the guestPlayer ?
            }
        }

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

Вопрос здесь в том, как отобразить видео, снятое на guestPlayer. Я делаю это, чтобы проверить перехваченные данные, поскольку этот блок webm e.data будет загружен на сервер.

e.data содержит

data: Blob
size: 26009
type: "video/webm"
__proto__: Blob
size: (...)
type: (...)
slice: ƒ slice()
stream: ƒ stream()
text: ƒ text()
arrayBuffer: ƒ arrayBuffer()
constructor: ƒ Blob()
Symbol(Symbol.toStringTag): "Blob"
get size: ƒ size()
get type: ƒ type()
__proto__: Object

1 Ответ

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

Это так просто:

video.src = URL.createObjectURL(e.data);

https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

Обязательно используйте URL.revokeObjectURL(), когда вы закончите использовать этот BLOB-объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...