2011-06-13 19 views
143

Estamos creando un sitio web HTML5 para dispositivos móviles y necesitamos obtener acceso a la cámara a través del navegador web sin ser una aplicación nativa. Estamos teniendo problemas para hacer que esto funcione en iOS. ¿Alguien sabe de una solución para esto?Acceso a la cámara a través del navegador

Respuesta

4

La aplicación Picup es una forma de tomar fotografías de una página HTML5 y cargarlas en su servidor. Requiere una programación adicional en el servidor, pero aparte de PhoneGap, no he encontrado otra manera.

+5

En iOS8 ya no necesita Picup. HTML5 admite . Verificado en Safari y Chrome. – rakensi

9

Creo que este está funcionando. Grabación de un video o audio;

<input type="file" accept="video/*;capture=camcorder"> 
<input type="file" accept="audio/*;capture=microphone"> 

o (nuevo método)

<device type="media" onchange="update(this.data)"></device> 
<video autoplay></video> 
<script> 
    function update(stream) { 
    document.querySelector('video').src = stream.url; 
    } 
</script> 

Si no, probablemente funcionará en iOS 6 es, con más detalle se puede encontrar en get user media

24

En iOS 6, Apple apoya esta vía el <input type="file"> etiqueta. No pude encontrar un enlace útil en la documentación del desarrollador de Apple, pero hay un ejemplo here.

Parece superposiciones y la funcionalidad más avanzada aún no está disponible, pero esto debería funcionar para una gran cantidad de casos de uso.

EDITAR: The w3c has a spec that iOS6 Safari seems to implement a subset of. Falta el atributo capture.

117

Usted podría intentar esto:

<input type="file" capture="camera" accept="image/*" id="cameraInput" name="cameraInput"> 

pero tiene que ser iOS 6+ a trabajar. Eso le dará un diálogo agradable para que usted elija, ya sea para tomar una foto o para cargar uno de su álbum es decir

Screenhot

Un ejemplo se puede encontrar aquí: Capturing camera/picture data without PhoneGap

+4

¡Esto también es INCREÍBLE en Android! – Matt

+1

Bonita demostración para subir a un servidor. ¿Alguien sabe cómo modificar esto para guardar la imagen en un álbum local en el dispositivo? –

+2

El único problema es que, al menos en iphone (ios 7.0.4) al menos en el momento en que crea una imagen temporal llamada siempre ''imagen.jpg''.Por lo tanto, si sube algunas imágenes de la misma forma, se sobreescribirán por el mismo nombre a menos que haga algo para cambiarles el nombre, ¡tenga cuidado! – aleation

23

A partir de 2015, ahora solo funciona.

<input type="file"> 

Esto solicitará al usuario la carga de cualquier archivo. En iOS 8.x esto puede ser un video de cámara, una foto de cámara o una foto/video de Photo Library.

iOS/iPhone photo/video/file upload

<input type="file" accept="image/*"> 

Este es el anterior, pero limita las subidas de fotos sólo desde la cámara o en la biblioteca, sin vídeos.

+1

¿Hay alguna manera de evitar que los usuarios elijan un archivo de la biblioteca de fotos? Quiero aceptar solo una imagen recién tomada. – Daryl

+0

@Daryl no en iOS. Android admite el atributo 'captura', que hace precisamente eso. Consulte [Corrección de la sintaxis para la captura de medios HTML] (https://addpipe.com/blog/correct-syntax-html-media-capture/) –

+0

¿debo cerrar esta ventana emergente de tomar fotografías o videos y fotografías después de un tiempo en el usuario no? Haz click en eso. – Pritish

Cuestiones relacionadas