chrome中不支持getUserMedia()

Mic*_*ack 11 webcam google-chrome

我正在尝试使用我自己的网站使用我自己的IP地址使用getUserMedia()来访问我的网络摄像头.

它工作正常,直到我再次尝试我的网站.我曾尝试过另一个演示网站,并且给出的错误是不支持getUserMedia.

Chrome版本v47.0.2526.80m 32位

在此输入图像描述

如果我输入localhost而不是我的ipadress,我可以访问网络摄像头.它也适用于Firefox.

Cla*_*lay 15

Chrome需要getUserMedia的安全来源(HTTPS).

从Chrome 47开始,getUserMedia()请求仅允许来自安全来源:HTTPS或localhost.

https://developers.google.com/web/updates/2015/10/chrome-47-webrtc?hl=en


小智 12

我不确定这是否完全解决了您的问题。但是,它可能对努力让 getUserMedia() 处于工作状态的人有所帮助。

我遇到了一个中等链接,它帮助我解决了这个问题。

转到:chrome://flags/#unsafely-treat-insecure-origin-as-secure

启用该选项。

此外,下面将提供一个复选框。使用它来提供到您的 HTTP 服务器的链接。

请参阅此图像以获得更好的清晰度

也提供端口号。(在我的情况下是 8000)

来源:https : //medium.com/@Carmichaelize/enabling-the-microphone-camera-in-chrome-for-local-unsecure-origins-9c90c3149339


Kai*_*ido 11

Chrome 最终实现了新navigator.mediaDevices.getUserMedia()方法,但他们添加了一个安全措施,可以防止来自不安全地址的呼叫(非https或非本地主机服务器)

你会这样称呼它:

var video = document.querySelector('video');
navigator.mediaDevices.getUserMedia({video:true}).then(function(mediaStream){
    window.stream = mediaStream;
    video.src = URL.createObjectURL(mediaStream);
    video.play();
});
Run Code Online (Sandbox Code Playgroud)

或者您可以使用官方webRTC polyfill adpater.js库.

var constraints = { video: true, audio: true };

navigator.mediaDevices.getUserMedia(constraints)
  .then(stream => video.srcObject = stream)
  .catch(e => console.error(e));
Run Code Online (Sandbox Code Playgroud)