7

estoy tratando de construir un reemplazo para UIImagePickerController, utilizando AVCaptureSession con AVCaptureDeviceInput y AVCaptureStillImageOutput, como entrada/salida, respectivamente. Para obtener una vista previa de la secuencia de la cámara estoy AVCaptureVideoPreviewLayer usando.diferencias entre la cámara y UIImagePickerController AVCaptureSession en el iPhone

Ahora está funcionando correctamente para capturar y almacenar fotos como la cámara predeterminada.

Sin embargo, me encontré con 3 problemas he podido resolver:

  • fotos capturadas no obtener la misma calidad de la cámara por defecto proporciona
  • el ángulo de visión/captura se acorta, al igual que el uso de la captura de vídeo en la cámara por defecto
  • hay manera de controlar las opciones específicas de la cámara como flash

¿hay alguna manera de llegar al nivel de UIImagePickerController usando un enfoque más personalizable (es decir AVFoundation o cualquier otro)?

+0

¿Qué es exactamente lo que quieres hacer, tal vez no necesitas el buffer de píxeles, tal vez simplemente superponer algo? Si desea obtener un búfer de alta calidad como UIImagePickerController para que pueda hacer algún procesamiento de imagen, no creo que sea posible (o al menos no fácil, porque como dijo, no hay API pública de control de flash o de enfoque disponible). Con AVFoundation obtendrá buffers ** brutos ** de entrada de cámara, así que no espere que sean tan buenos;) – nacho4d

+0

Necesité más personalización que una superposición en UIImagePickerController, pero si no hay otra forma de obtener su características, creo que tendré que seguir así ... Gracias por tu comentario. – paulo

Respuesta

10

Consulte "Sesión 409 - Uso de la cámara con AV Foundation" en el WWDC 2010 videos. Según el video, parece como puede resolver sus tres problemas con AVFoundation.

Espero que esto ayude!

+0

¡Muerto, donkim! Estoy escribiendo esto desde una máquina con Windows, así que no puedo probar nada en este momento, pero he visto el PDF de la sesión 409 y, como dijiste, ¡todos mis 3 problemas se abordaron y mucho más! Gracias por mencionarlo. ¡Salvó mi día! – paulo

+0

Ahora se puede confirmar que todo está funcionando como se esperaba, utilizando la información de dicha sesión WWDC 2010. La clave está en usar ** AVCaptureSessionPresetPhoto ** y configurar la entrada ** AVCaptureDevice ** según sea necesario. Gracias de nuevo, @donkim! – paulo

+0

¡Me alegro de que haya funcionado para ti! :) – donkim

Cuestiones relacionadas