example camara cam and html5 google-chrome

html5 - camara - GetUserMedia de Chrome no solicita permiso localmente



stream cam html5 (5)

Chrome bloquea muchas cosas en el file:/// URI sin informar un error de seguridad (por ejemplo, Geolocation ). Su mejor opción es ejecutar desde un servidor web local, si tiene Python instalado, intente SimpleHTTPServer .

Estoy intentando jugar con navigator.getUserMedia en Chrome; sin embargo, no solicita permiso cuando se sirve localmente (archivo: ///whatever/index.html), pero sí lo hace en JSFiddle ( http://jsfiddle.net/EBsvq/ ) y otros sitios.

¿Alguien sabe la razón de esto? ¿Necesito restablecer de alguna manera mis permisos?

Esto es lo que estoy usando localmente:

<html> <head></head> <body> <button id="btn">Start</button> <script type="text/javascript"> /*! jQuery v1.8.3 jquery.com | jquery.org/license */ //JQuery goes here </script> <script type="text/javascript"> navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.getUserMedia; $(function(){ $(''#btn'').click(function(){ navigator.getUserMedia({audio: true}, function(){ alert(''success''); }, function (err) { alert(''fail: '' + JSON.stringify(err)); }); }); }); </script> </body> </html>


Encontré un problema similar, pero relacionado con el acceso al micrófono. Chrome bloquea el acceso al dispositivo si sirve su archivo a través de file: // (tenga en cuenta que en Microsoft Edge y Firefox funcionó a través de file :: //).

Una solución que he encontrado para Chrome:

  1. abrir chrome un tipo en la URL chrome: // version /
  2. copie el valor del campo "Línea de comando" en su línea de comando y agregue --allow-file-access-from-files y ejecútelo
  3. después de abrir Chrome e ingrese su archivo: // url.

Para iniciar Chrome siempre así, haga clic con el botón derecho en el icono de Chrome y luego haga clic en propiedades. En la pestaña Acceso directo, agregue al valor de destino todos los parámetros de la línea de comandos de 2.


Es un poco no trivial cómo hacer la línea de comando arg en OS X. Por lo general, se verá así

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

Si eres un loco como yo y pones tus aplicaciones en ~/Applications , entonces será

"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

Si ninguno de los dos está funcionando, escriba la chrome://version en la barra de direcciones de Chrome y le indicará qué invocación de "línea de comando" debe usar. Solo agrega --allow-file-access-from-files a eso.


Intente instalar Simple Server (peso ligero), haga clic aquí para instalarlo, puede descargarlo

Una vez que esté instalada, refiera la aplicación a la página que desea ejecutar.


Puede usar el --allow-file-access-from-files desde la línea de comandos al abrir Chrome para poder usar getUserMedia desde un sistema de archivos local.