我正在尝试使用我自己的网站使用我自己的IP地址使用getUserMedia()来访问我的网络摄像头。
它工作正常,直到我再次尝试我的网站。我曾尝试过另一个演示网站,并且给出的错误是不支持getUserMedia。
Chrome版本v47.0.2526.80m 32位
如果我输入localhost而不是我的ipadress,我可以访问网络摄像头。它也适用于Firefox。
答案 0 :(得分:9)
Chrome需要getUserMedia的安全来源(HTTPS)。
从Chrome 47开始,getUserMedia()请求仅允许来自安全来源:HTTPS或localhost。
https://developers.google.com/web/updates/2015/10/chrome-47-webrtc?hl=en
答案 1 :(得分:9)
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();
});
或者您可以使用官方webRTC polyfill adpater.js库。
var constraints = { video: true, audio: true };
navigator.mediaDevices.getUserMedia(constraints)
.then(stream => video.srcObject = stream)
.catch(e => console.error(e));
答案 2 :(得分:8)
我不确定这是否能完全解决您的问题。但是,这对于正在努力使getUserMedia()处于工作状态的人可能会有所帮助。
我遇到了一个中间链接,可以帮助我解决此问题。
转到:chrome:// flags /#unsafely-treat-insecure-origin-as-secure
启用该选项。
此外,下面还会提供一个复选框。使用该链接提供指向您的HTTP服务器的链接。
Referr to this image for better clarity
也提供端口号。 (在我的情况下是8000)