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

时间:2016-06-07 07:24:34

标签: video webcam getusermedia

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

代码:

navigator.getMedia =    navigator.getUserMedia ||
                                navigator.webkitGetUserMedia ||
                                navigator.mediaDevices.getUserMedia ||
                                navigator.msGetUserMedia ||
                                OTPlugin.getUserMedia;

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

IE错误:无法获取财产“getUserMedia'未定义或空引用

1 个答案:

答案 0 :(得分:11)

您忘记了navigator.mozGetUserMedia Firefox。 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>