camara - HTML5: acceso a la cámara
show camera html5 (8)
Soy bastante nuevo en HTML5
. Intento el siguiente código HTML5
para acceder a la cámara en mi teléfono móvil. Siempre muestra "Cámara web nativa no compatible" . Parece que mi navegador móvil (navegador web de safari y android 2.1) no es compatible con la cámara.
¿Podría decirme qué navegador debo usar para acceder a la cámara?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1.0">
<style>
body {width: 100%;}
canvas {display: none;}
</style>
<script>
var video, canvas, msg;
var load = function () {
video = document.getElementById(''video'');
canvas = document.getElementById(''canvas'');
msg = document.getElementById(''error'');
if( navigator.getUserMedia ) {
video.onclick = function () {
var context = canvas.getContext("2d");
context.drawImage(video, 0, 0, 240, 320);
var image = {"demo" : {
"type" : "device",
"image" : canvas.toDataURL("image/png")
}};
};
var success = function ( stream ) {
video.src = stream;
};
var error = function ( err ) {
msg.innerHTML = "Error: " + err.code;
};
navigator.getUserMedia(''video'', success, error);
} else {
msg.innerHTML = "Native web camera not supported :(";
}
};
window.addEventListener(''DOMContentLoaded'', load, false);
</script>
</head>
<body>
<video id="video" width="240" height="320" autoplay> </video>
<p id="error">Click on the video to send a snapshot to the receiving screen</p>
<canvas id="canvas" width="240" height="320"> </canvas>
</body>
</html>
Acabo de empezar a trabajar con una herramienta llamada Bridgeit.
Esta es una combinación de javascript en el navegador y una aplicación en el teléfono. Parece funcionar bastante bien hasta ahora.
Creo que Opera es el único navegador móvil que admite esta extensión HTML5.
Ver nota del autor a este hilo;
El método getUserMedia
ahora es compatible con Firefox 17+, Chrome 23+ y Opera 12+. (Ver caniuse.com )
Esto funciona en Firefox mobile, Chrome mobile, iPhone y Android:
<input type="file" id="mypic" accept="image/*">
Hemos tenido cierto éxito con este enfoque básico improvisado desde toda la Web:
<form method="post" action="takephoto.php" enctype="multipart/form-data">
<input type="file" accept="image/*" name="file">
<input type="submit">
</form>
Luego, en el archivo PHP generamos nombres de archivo únicos usando now () o algo similar para el almacenamiento.
Opera Desktop, Opera Mobile y Chrome (después de cambiar algunas configuraciones) admiten hasta el momento acceso a cámara / micrófono HTML5.
Puede usar Chrome para Android habilitando el indicador "Habilitar WebRTC" en chrome: // flags
Probé en mi teléfono Android para acceder a la cámara en la página html5 y está funcionando.
<input type="file" accept="image/*;capture=camera">
Ver Captura de audio y video en HTML5
Apoyo:
- Navegador Android 3.0 - una de las primeras implementaciones. Echa un vistazo a este video para verlo en acción.
- Chrome para Android (0.16)
- Firefox Mobile 10.0
- iOS6 Safari y Chrome (soporte parcial)