Я использую blob для потоковой передачи своей веб-камеры через сервер с помощью socket.io. Однако при локальном тестировании воспроизводится первый экземпляр этого «l oop», а другие экземпляры не воспроизводятся.
Когда я настраиваю время (скажем, 1 секунда из 5 секунд), происходит то же самое, воспроизводится вся первая запись (большой двоичный объект), но только первая.
Никаких ошибок не происходит, и я просто не могу понять, что происходит. Я вижу, как URL создается в консоли, поэтому я знаю, что создается новый BLOB-объект, но видео sr c просто не будет его читать и воспроизводить (кроме первого, каждый раз, когда я обновляю sh браузер). ).
Ваша помощь ценится и большое спасибо!
HTML:
<video id="video" autoplay></video>
Клиент:
navigator.mediaDevices.getUserMedia(constraints)
.then(stream => {
var recorder = new MediaRecorder(stream);
recorder.ondataavailable = event => {
blob = event.data;
url = URL.createObjectURL(blob);
socket.emit('sendBlobToServer', url);
};
recorder.start(1000);
});
socket.on('sendBlobToClient', function (data){
url = data;
document.getElementById('video').src = url;
});
Сервер:
socket.on('sendBlobToServer', function (data){
url = data;
io.emit('sendBlobToClient', url);
});
В инструментах разработчика он, кажется, падает.