TypeError,captureStream 不是一个函数

TypeError, captureStream is not a function

我创建了一个包含视频元素的 HTML5 页面。播放示例视频。在我尝试在视频元素中录制流之后。我正在使用 RecordRTC 库来实现录音功能。我有以下代码

var stream = document.getElementById("my_video").captureStream();
var recorder = RecordRTC(stream, { 
  type: 'video'
});

recorder.startRecording();

录制在 Chrome 浏览器和 Mozilla 浏览器上成功运行,直到版本 57。但是在去年 1 月,Mozilla 浏览器更新到版本 58。此更新后,尝试使用 Mozilla 录制视频时出现错误.

错误信息是:

TypeError 
message: document.getElementById("my_video").captureStream is not a function"

如何解决这个问题?

好吧,according to the docs this is experimental tech 所以 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>