navigator.mediaDevices.getUserMedia no funciona y tampoco lo hace webkitGetUserMedia

He estado utilizando el método webkitGetUserMedia (getUserMedia a través de adapter.js) para get la camera nad microhpone para webRTC en mi aplicación web. Mi server no es seguro (sin certificate SSL). Todo funcionó bien hasta que comencé a recibir un post de error que decía: "getUserMedia () ya no funciona en orígenes inseguros. Para usar esta function, debería considerar cambiar su aplicación a un origen seguro, como HTTPS. Consulte https: // goo. gl / rStTGz para más detalles. "

Busqué en Google y vi que ahora en Chrome necesito usar navigator.mediaDevices.getUserMedia (). Estoy usando Chrome 47.0.2526.80 m, y en esta página https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia dice que este método debe ser compatible con esta versión. Sin embargo, cuando llamo a navigator.mediaDevices.getUserMedia me vuelvo indefinido. Entonces ahora no puedo usar ninguno de los methods en Chrome.

¿Puede alguien ayudarme con este problema? Gracias

Según la nueva actualización de Chrome (de Google Chrome 47), getUserMedia () ya no es compatible con el browser Chrome en http: // (origen no seguro), funcionará en https: // (origen seguro)

Para el propósito de desarrollo,

1.localhost se trata como un origen seguro a través de HTTP, por lo que si puede ejecutar su server desde localhost, debería poder probar la function en ese server.

2. Puede ejecutar chrome con el --unsafely-treat-insecure-origin-as-secure="http://example.com" (reemplazando "ejemplo.com" por el origen que realmente desea probar), que tratará ese origen como seguro para esta session. Tenga en count que también necesita include el --user-data-dir=/test/only/profile/dir para crear un nuevo perfil de testing para que el indicador funcione.

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

La última actualización de google-chrome hace que getUserMedia solo funcione en orígenes seguros. Hay un método para hacerlo funcionar, pero solo con fines de desarrollo. Simplemente ejecute Chrome usando cmd con esas opciones

–unsafely-treat-inseguro-origin-as-secure = "example.com"

y esta opción para usar un nuevo perfil de usuario

–user-data-dir = / test / solo / perfil / dir

FYI getUserMedia funciona en Firefox hasta ahora, pero en mi opinión, recomendará un origen seguro como google-chrome.

Todavía puede usar el nombre del método anterior en Chrome 47, siempre que use https . El cambio de nombre es ortogonal al nuevo requisito de origen seguro de 47. Ver otras respuestas

Acerca de los methods faltantes: navigator.mediaDevices.getUserMedia se puso de nuevo bajo una marca en Chrome, por lo que debe activar chrome://flags/#enable-experimental-web-platform-features o usar una versión reciente de adapter.js , como aquí: https://stackoverflow.com/a/34230983/918910 .