我正在尝试使用视频标记将网络摄像头实现到网站中。
它可以在Chrome中运行,但是FireFox和IE在控制台中返回错误。
有人有什么想法吗?
谢谢!
代码:
navigator.getMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mediaDevices.getUserMedia ||
navigator.msGetUserMedia ||
OTPlugin.getUserMedia;
Firefox错误:TypeError:在未实现接口(interface)MediaDevices的对象上调用了'getUserMedia'。
IE错误:无法获取未定义或空引用的属性“getUserMedia”
最佳答案
您忘记了Firefox的navigator.mozGetUserMedia
。 IE没有它(尽管MS Edge有)。
另外,从该列表中删除navigator.mediaDevices.getUserMedia
,因为它的工作方式有所不同。
我的建议:跳过前缀困惑,尝试使用WebRTC官方polyfill adapter.js。然后,专有地使用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 - TypeError : 'getUserMedia' called on an object that does not implement interface MediaDevices,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37673000/