После прочтения этой страницы https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder.start , я написал свой собственный код:
var mediaConstraint = { video: true, audio: true };
navigator.getUserMedia(mediaConstraint, function(stream) {
var vendorURL = window.URL || window.webkitURL;
_video = document.querySelector('#recordingCamera');
_video.src = vendorURL.createObjectURL(stream);
_video.play();
var mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start(3000);
mediaRecorder.ondataavailable = function(e) {
var replay = document.querySelector('#replay');
replay.src = window.URL.createObjectURL(e.data);
replay.play();
}
}, function(error){
});
Я ожидаю, что через 3 секунды после того, как элемент #recordingCamera отобразит содержимое с моей камеры, я увижу повтор содержимого в элементе #replay.
Но элемент #replay воспроизводится только первые 3 секунды. . После этого элемент #recordingCamera по-прежнему отображает содержимое камеры, но больше ничего для элемента #replay.
При проверке консоли я обнаружил следующие сообщения:
Media resource blob:http://localhost:8081/634f6237-17a9-475d-89bb-2c6ca0b48eb6 could not be decoded.
Media resource blob:http://localhost:8081/d0b95463-f9bc-4b0f-bd0d-40ae3152181f could not be decoded.
Media resource blob:http://localhost:8081/535ab990-0ee2-4ec0-adac-2d5d6917f6f3 could not be decoded.
доступные данные по-прежнему срабатывают, но с данными что-то не так.
Мой вопрос:
- Является ли это ошибкой Firefox?
- Если нет, то как правильно использовать MediaRecorder с аргументом среза времени, указанным с помощью start?