La manera más sencilla de capturar fotos o video desde la cámara es usar la API de CameraCaptureUI. Esta API nos muestra el diálogo de pantalla completa de captura, y nos permite capturar fotos y video con un simple llamado a un método.
Si lo que quisiéramos es implementar nuestra propia interfaz, deberíamos usar MediaCapture.
Para este ejemplo vamos a usar HTML y JavaScript para capturar una foto desde nuestra aplicación. Para poder seguirlo deben tener instalado Windows 8 y Visual Studio Express 2012 for Windows 8 (o superior).
Una vez abierto Visual Studio, creamos un nuevo proyecto, eligiendo como lenguaje JavaScript y como template una aplicación en blanco.
Una vez dentro de nuestro proyecto, abrimos default.html y reemplazamos dentro del body el:
<p>Content goes here</p>
por:
<input type="button" onclick="tomarFoto()" value="Tomar una foto" /><br /> <span id="mensaje"></span>
Lo que hicimos fue agregar un input de tipo botón que será el encargado de abrir el diálogo de manejo de la cámara, y un span que mostrará un mensaje indicando si se tomó o no la foto.
Luego vamos a default.js (ubicado dentro de la carpeta js) y agregamos al final la siguiente función, que será la encargada de llamar al diálogo y actualizar nuestro mensaje de acuerdo a lo sucedido:
function tomarFoto() { var captureUI = new Windows.Media.Capture.CameraCaptureUI(); captureUI.captureFileAsync(Windows.Media.Capture.CameraCaptureUIMode.photo).then(function (capturedItem) { if (capturedItem) { document.getElementById("mensaje").innerHTML = "Se tomó una foto :)"; } else { document.getElementById("mensaje").innerHTML = "No se tomó una foto :("; } }); }
Lo único que nos falta es declarar que nuestra aplicación utiliza la cámara para poder utilizarla. Para ello vamos al manifiesto de nuestra aplicación (package.appxmanifest), y tildamos webcam dentro de la solapa Capabilities.
Con esto ya tendremos nuestra primera aplicación que hace uso de la cámara para capturar una imagen.
Al correrla vemos nuestro botón (si, necesita de un buen diseñador antes de subirla al store ):
Al tocar el botón por primera vez nos solicita permiso para usar la cámara:
Y si le damos permiso, veremos nuestra propia cámara para tomar una foto!
Tocando en la pantalla sacaremos nuestra foto, la cual podremos recortar o rehacer, si quisiéramos:
Y luego de darle OK, volvemos a nuestra aplicación, con el mensaje indicando que la foto fue tomada:
Espero que el ejemplo les sea útil.
Happy coding!
cometi el error de darle bloquear, como le doy de nuevo permisos, no he podido utilizar mi cam, devere desinstalar la api?, gracias por tu aporte 🙂
Carlos, no necesitas desinstalar nada. Hay 2 opciones:
1) Con la app abierta, ir a los settings -> permissions y habilitarle la cámara.
2) Desinstalar la app, y volver a correrla, normalmente vuelve a solicitar el permiso.
Saludos!
Error en tiempo de ejecución de JavaScript: ‘tomarFoto’ no está definido
porque
Andrés, si está definido, es la porción de código que hay que agregar a default.js 😉
como entro a settings? soy nuevo en windows 8
me paso los mismo se me bloqueo la camara , bueno yo lo bloquie y ahora nose como desbloquear nose donde queda settings :C
a mi me sale que otro programa esta usando la camara ; y no se por que me sale si ust. sabe me puede ayudar
Visita la siguiente pagina puede que te ayude, esta facil
https://la.es.kb.sony.com/app/answers/detail/a_id/15517/c/94850,94853/kw/otorgar%20permisos%20de%20camara/session/L3RpbWUvMTM4NDkyMjkyMS9zaWQvcVNtYipORmw%3D
ME AYUDO MUCHISIMO GRACIAS! :3
Gracias por la info,
en especial al del coment por el link que me ayudo a mi tambien. C: