我正在尝试使用视频标签在网站中实现网络摄像头。 它在 Chrome 中工作,但 FireFox 和 IE 在控制台中返回错误。 任何人有任何想法为什么? 谢谢!
代码:
navigator.getMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mediaDevices.getUserMedia ||
navigator.msGetUserMedia ||
OTPlugin.getUserMedia;
Firefox 错误:TypeError:'getUserMedia' 调用了一个未实现接口(interface) MediaDevices 的对象。
IE 错误:无法获取未定义或空引用的属性“getUserMedia”
最佳答案
您忘记了 Firefox 的 navigator.mozGetUserMedia
。 IE 没有它(尽管 MS Edge 有)。
此外,从该列表中删除 navigator.mediaDevices.getUserMedia
,因为它的工作方式不同。
我的建议: 跳过前缀困惑并尝试 adapter.js ,官方 WebRTC polyfill。然后使用 navigator.mediaDevices.getUserMedia排他性的,因为其他一切都已被弃用。
示例(在 Chrome 中使用 https fiddle):
navigator.mediaDevices.getUserMedia({ video: true, audio: true })
.then(stream => video.srcObject = stream)
.catch(e => console.log(e.name + ": "+ e.message));
<video id="video" width="160" height="120" autoplay></video><br>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
关于video - 类型错误 : 'getUserMedia' called on an object that does not implement interface MediaDevices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37673000/