TypeError, captureStream не является функцией
Я создал страницу HTML5 с элементом видео. Образец видео воспроизводится. После того, как я попытался записать поток в элемент видео. Я использую библиотеку RecordRTC для записи функциональности. У меня есть следующий код
var stream = document.getElementById("my_video").captureStream();
var recorder = RecordRTC(stream, {
type: 'video'
});
recorder.startRecording();
Запись успешно работает в браузере Chrome и браузере Mozilla до версии 57. Но в прошлом январе браузер Mozilla обновился до версии 58. После этого обновления у меня возникла ошибка при попытке записать видео с помощью Mozilla.
Сообщение об ошибке:
TypeError
message: document.getElementById("my_video").captureStream is not a function"
Как решить эту проблему?
1 ответ
Решение
Ну, согласно документации это экспериментальная технология, поэтому Firefox требует от вас префикса moz
на имя функции: mozCaptureStream
, Я немного удивлен, что это сработало раньше.
Вы можете проверить версию браузера с navigator.userAgent
,
const sUsrAg = navigator.userAgent;
if (sUsrAg.indexOf('Firefox') > -1) {
console.log('Firefox');
document.getElementById("my_video").mozCaptureStream();
} else {
console.log('Other');
document.getElementById("my_video").captureStream();
}
<video id="my_video"></video>