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>

Другие вопросы по тегам