TypeError:在没有实现接口MediaDevices的对象上调用'getUserMedia'

Ale*_*ina 5 video webcam getusermedia

我正在尝试使用视频标记将网络摄像头实施到网站中.它适用于Chrome,但FireFox和IE在控制台中返回错误.有人有什么想法吗?谢谢!

码:

navigator.getMedia =    navigator.getUserMedia ||
                                navigator.webkitGetUserMedia ||
                                navigator.mediaDevices.getUserMedia ||
                                navigator.msGetUserMedia ||
                                OTPlugin.getUserMedia;
Run Code Online (Sandbox Code Playgroud)

Firefox错误:TypeError:'getUserMedia'调用了一个没有实现接口MediaDevices的对象.

IE错误:无法获取未定义或空引用的属性'getUserMedia'

jib*_*jib 12

你忘记navigator.mozGetUserMedia了Firefox.IE没有它(虽然MS Edge确实如此).

此外,navigator.mediaDevices.getUserMedia从该列表中删除,因为它的工作方式不同.

我的建议:跳过前缀mess并尝试使用官方WebRTC polyfill的adapter.js.然后独占使用 navigator.mediaDevices.getUserMedia,因为其他所有内容都已弃用.

示例(在Chrome中使用https小提琴):

navigator.mediaDevices.getUserMedia({ video: true, audio: true })
  .then(stream => video.srcObject = stream)
  .catch(e => console.log(e.name + ": "+ e.message));
Run Code Online (Sandbox Code Playgroud)
<video id="video" width="160" height="120" autoplay></video><br>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
Run Code Online (Sandbox Code Playgroud)