web-dev-qa-db-fra.com

getUserMedia () non pris en charge dans chrome

J'essaie d'accéder à ma webcam en utilisant getUserMedia () en utilisant mon propre site Web qui fonctionne avec ma propre adresse IP.

cela fonctionnait bien jusqu'à ce que j'essaye à nouveau mon site Web. j'avais essayé l'autre site de démonstration et l'erreur indiquée était getUserMedia n'est pas pris en charge.

Version Chrome v47.0.2526.80m 32bits

enter image description here

Je peux accéder à la webcam si j'entre dans localhost au lieu de mon ipadress. il fonctionne également dans firefox.

12
Mick Jack

Chrome requiert des origines sécurisées (HTTPS) pour getUserMedia.

À partir de Chrome 47, les demandes getUserMedia () ne sont autorisées que depuis des origines sécurisées: HTTPS ou localhost.

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

15
Clay

Chrome a finalement implémenté la nouvelle méthode navigator.mediaDevices.getUserMedia() , mais ils ont ajouté une sécurité qui empêchera les appels de adresse non sécurisée (serveurs non https ou non localhost)

Vous l'appellerez comme ceci:

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

Ou vous pouvez utiliser la bibliothèque officielle de polyfill webRTC adpater.js .

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

navigator.mediaDevices.getUserMedia(constraints)
  .then(stream => video.srcObject = stream)
  .catch(e => console.error(e));
11
Kaiido