2010-10-12 12 views
12

Estoy investigando para una aplicación en este momento. Una de las ideas interesantes que surgieron fue grabar desde la cámara frontal y la cámara frontal al mismo tiempo. ¿Alguno de ustedes sabe si esto es factible?¿Puede el iPhone4 grabar desde la cámara frontal y la cámara trasera al mismo tiempo?

Gracias :)

EDIT: quiero decir cámaras delantera y trasera. Quiero grabar desde ambas cámaras a la vez en dos flujos separados. Espero estar un poco más claro.

+3

¿Se refiere a la cámara delantera y trasera o la cámara frontal y la cámara de personas entrantes? – TofuBeer

+0

Disculpas ... Delantero y trasero ... es decir, ambas cámaras a la vez. – dineth

+0

¡Me interesa esto también, publique todo lo que descubra y haré lo mismo! –

Respuesta

13

Es algo que la API permite. Probé tres enfoques en un iPhone 4 con el último iOS 4.2.1.

En primer lugar, traté de usar una sola sesión de captura con ambos dispositivos de video conectados como entradas. Colocación del segundo dispositivo produce una excepción:

Terminación de aplicación debido a la no detectada excepción 'NSInvalidArgumentException', razón: '* múltiple de audio/vídeo AVCaptureInputs no son compatibles actualmente .'

En segundo lugar, traté de configurar dos sesiones diferentes, cada una con una sola cámara y comenzarlas al mismo tiempo. Esto causó que la primera sesión informara cuadros durante aproximadamente un segundo, pero tan pronto como el segundo comienza las primeras paradas por su propia voluntad. El orden en el que envía 'startRunning' dicta cuál de las sesiones finalmente logra forzar a la otra.

Finalmente, probé un enfoque simple de ping pong. Así que creo dos sesiones, comienzo la primera y tan pronto como informa un marco, lo detiene y comienza el segundo. Luego detén el segundo y comienza el primero, ad infinitum. Lamentablemente, la latencia entre solicitar un inicio de sesión y recibir el primer fotograma me dejó con un fotograma cada dos segundos.

Por supuesto que es posible que haya cometido un error en mi código, pero me inclino a decir que no es posible en el hardware o sistema operativo actual. Engancharé las notificaciones de AVCaptureSession para ver si se me da una razón explícita de por qué se detiene y actualizo esta publicación.

Adiciones: mi programa recibe solo las notificaciones AVCaptureSessionDidStartRunningNotification, una de cada sesión de captura. El que se detiene no informa un error, interrupción u otra interrupción. Tampoco puedo encontrar un problema con mi código, como un objeto o la reutilización de la cola de distribución, que posiblemente podría causar este problema.

+2

¿Todavía tiene este código para probar iOS5? , 6 o 7? :) –

5

Parece posible grabar desde múltiples entradas de video usando la API de AVFoundation. De acuerdo con documentation, se pueden usar múltiples entradas AVCaptureDevice en una sesión AVCaptureSession. En un iPhone 4 esto significa que una sesión podría tener ambos AVCaptureDevices para ambas cámaras. En la práctica, puede que no sea factible. No lo he probado, así que no puedo decir con certeza.

No creo que el UIImagePickerController estándar se pueda usar para grabar desde ambos al mismo tiempo.

+0

Sí, seguramente necesitarías usar CoreMedia. Un buen punto de partida ... http: // stackoverflow.com/questions/10199021/ios-capture-image-from-front-facing-camera y http://adcdownload.apple.com//videos/wwdc_2010__sd/session_409__using_the_camera_with_av_foundation.mov – Fattie

Cuestiones relacionadas