我正在尝试使用视频标记将网络摄像头实现到网站中。
它可以在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/

10-12 14:24