Chrome:navigator.mediaDevices.getUserMedia不是一个函数

mun*_*nn9 12 javascript google-chrome webrtc

我在localhost上并试图在Chrome中使用MediaDevices.getUserMedia方法.我收到标题错误.据我所知,在Chrome中,只能使用具有安全来源的此功能,并且localhost被视为安全来源.此外,这适用于Firefox.

这就是我使用它的方式,如Google Developers网站上所示https://developers.google.com/web/updates/2015/10/media-devices?hl=en:

var constraints = window.constraints = {
            audio: false,
            video: true
};


navigator.mediaDevices.getUserMedia(constraints).then(function(stream) {
            callFactory.broadcastAssembly(stream);
            ...
});
Run Code Online (Sandbox Code Playgroud)

Sim*_*one 7

尝试启用:chrome:// flags/#enable-experimental-web-platform-features

为我工作的铬


Amr*_*dra 7

在一些最新的浏览器navigator.getUserMedia上表现不佳.因此,请尝试使用navigator.mediaDevices.getUserMedia.或者,您最好检查navigator.mediaDevices.getUserMedia浏览器是否可用,navigator.mediaDevices.getUserMedia否则请使用navigator.getUserMedia.

navigator.getWebcam = (navigator.getUserMedia || navigator.webKitGetUserMedia || navigator.moxGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
if (navigator.mediaDevices.getUserMedia) {
    navigator.mediaDevices.getUserMedia({  audio: true, video: true })
    .then(function (stream) {
                  //Display the video stream in the video object
     })
     .catch(function (e) { logError(e.name + ": " + e.message); });
}
else {
navigator.getWebcam({ audio: true, video: true }, 
     function (stream) {
             //Display the video stream in the video object
     }, 
     function () { logError("Web cam is not accessible."); });
}
Run Code Online (Sandbox Code Playgroud)

希望这能解决你的问题.


小智 5

我的 chrome 浏览器也遇到了同样的问题。首先通过在https://test.webrtc.org/ 中测试来检查您的手机是否受支持

如果您的手机通过了所有情况,请检查第 2 步

第二步:如果您托管网页或运行第三方网页,请查看您的手机是否启用了摄像头权限。

此外,主要问题是HTTP 站点不支持 WEBRTC,仅 HTTPS 站点支持

这是允许 web 的 https 站点 这是给出错误的 http 站点

  • 确实,这也是我的问题(+1) (2认同)

Adr*_*Ber -2

请改用navigator.getUserMedia()

navigator.getUserMedia(constraints, successCallback, errorCallback);
Run Code Online (Sandbox Code Playgroud)