Navigator.mediaDevices.getUserMedia ne fonctionne pas et webkitGetUserMedia non plus

j'ai utilisé la méthode webkitGetUserMedia (getUserMedia via adaptateur.js) pour obtenir la caméra NAD microhpone pour webRTC sur mon application web. Mon serveur n'est pas sécurisé (Pas de certificat SSL). Tout a bien fonctionné jusqu'à ce que je commence à recevoir une erreur disant : "getUserMedia() ne fonctionne plus sur les origines incertaines. Pour utiliser cette fonctionnalité, vous devriez envisager de changer votre application à une origine sécurisée, comme HTTPS. Voir https://goo.gl/rStTGz pour plus de détails."

j'ai googlé et j'ai vu que maintenant dans Chrome j'ai besoin d'utiliser navigator.mediaDevices.getUserMedia (). J'utilise Chrome 47.0.2526.80 m, et sur cette page https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia it says that this method should be supported for this version. Cependant quand je l'appelle navigator.mediaDevices.getUserMedia Je ne suis pas défini. Donc maintenant je ne peux pas utiliser l'une ou l'autre méthode dans Chrome.

quelqu'un Peut-il m'aider avec ce problème. Merci

16
demandé sur Michael P 2015-12-08 23:40:24

3 réponses

selon la nouvelle mise à jour de chrome (de Google Chrome 47), getUserMedia () n'est plus supporté dans chrome browser sur http:// (Unsecure Origin), il fonctionnera sur https:// (Secure Origin)

Pour des fins de développement,

1.localhost est considéré comme une origine sécurisée par HTTP, donc si vous êtes capable d'exécuter votre serveur à partir de localhost, vous devriez être en mesure de tester la fonctionnalité sur ce serveur.

2.Vous pouvez lancer chrome avec le --unsafely-treat-insecure-origin-as-secure="http://example.com" drapeau (remplaçant "example.com" avec l'origine que vous voulez réellement tester), qui traitera cette origine comme sûre pour cette session. Notez que vous devez également inclure le --user-data-dir=/test/only/profile/dir pour créer un nouveau profil de test pour que le drapeau fonctionne.

référence: https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

28
répondu Mohammed Safeer 2016-05-24 13:47:46

la dernière mise à jour de google-chrome permet à getUserMedia de travailler uniquement sur les origines sécurisées. Il existe une méthode pour la faire fonctionner, mais uniquement à des fins de développement. Il suffit de lancer chrome en utilisant cmd avec ces options

--mal-traiter les victimes de l'insécurité alimentaire d'origine-- - - secure="example.com"

et cette option pour utiliser un nouveau profil d'utilisateur

--user-data-dir=/test/uniquement/profil/dir

pour information getUserMedia travail sur firefox jusqu'à présent, mais à mon avis, il recommandera une origine sécurisée comme google-chrome.

8
répondu Kassav' 2015-12-09 10:04:27

vous pouvez toujours utiliser L'ancien nom de méthode dans Chrome 47,aussi longtemps que vous utilisez https. Le changement de nom est orthogonal à la nouvelle exigence d'origine sécurisée de 47. Voir les autres réponses.

navigator.mediaDevices.getUserMedia a été mis retour sous un drapeau dans Chrome, de sorte que vous devez soit activer chrome://flags/#enable-experimental-web-platform-features ou utiliser une version récente de l'adaptateur.js, comme ici: https://stackoverflow.com/a/34230983/918910.

4
répondu jib 2017-05-23 12:10:36