2010-10-12 10 views
12

Sto ricercando un'applicazione per il momento. Una delle idee interessanti che sono venute fuori è stata quella di registrare contemporaneamente dalla fotocamera frontale e dalla fotocamera frontale. Qualcuno di voi sa se questo è fattibile?È possibile registrare iPhone4 sia dalla fotocamera anteriore che posteriore contemporaneamente?

Grazie :)

EDIT: voglio dire le telecamere anteriore e posteriore. Voglio registrare da entrambe le telecamere contemporaneamente su due flussi separati. Spero di essere un po 'più chiaro.

+3

Vuoi dire la fotocamera frontale e quella posteriore o la fotocamera frontale e quella per le persone in arrivo? – TofuBeer

+0

Ci scusiamo ... Anteriore e posteriore ... cioè entrambe le fotocamere contemporaneamente. – dineth

+0

Anche io sono interessato a questo, per favore pubblica qualcosa che scopri e io farò lo stesso! –

risposta

13

È qualcosa che l'API consente. Ho provato tre approcci su un iPhone 4 con l'ultimo iOS, 4.2.1.

In primo luogo, ho provato a utilizzare una singola sessione di acquisizione con entrambi i dispositivi video collegati come input. Montaggio del secondo dispositivo produce un'eccezione:

terminazione app a causa di non rilevata eccezione 'NSInvalidArgumentException', la ragione: '* multiplo audio/video AVCaptureInputs non sono attualmente supportate .'

In secondo luogo, ho provato a impostare due sessioni diverse, ciascuna con una sola videocamera e avviarle contemporaneamente. Ciò ha causato la prima sessione a segnalare i frame per circa un secondo, ma non appena il secondo avvia le prime fermate di sua spontanea volontà. L'ordine con cui si invia "startRunning" determina quale delle sessioni alla fine riesce a forzare l'altra.

Infine, ho provato un semplice approccio ping pong. Quindi creo due sessioni, avvia la prima e non appena riporta una cornice, la interrompe e inizia la seconda. Quindi ferma il secondo e inizia il primo, all'infinito. Purtroppo la latenza tra la richiesta di una sessione di iniziare e la ricezione del primo frame mi ha lasciato con circa un fotogramma ogni due secondi.

Ovviamente è possibile che io abbia commesso un errore nel mio codice, ma sono incline a dire che non è possibile sull'hardware o sul sistema operativo attuale. Agganciare le notifiche di AVCaptureSession per vedere se mi viene fornito un motivo esplicito per cui si interrompe e si aggiorna questo post.

Aggiunte: il mio programma riceve solo le notifiche di AVCaptureSessionDidStartRunningNotification, una da ciascuna sessione di acquisizione. Quello che si ferma non riporta un errore, un'interruzione o altri arresti. Inoltre, non riesco a trovare un problema con il mio codice, come un oggetto o un riutilizzo della coda di invio, che potrebbe presumibilmente causare questo problema.

+2

Hai ancora questo codice in giro per testare iOS5 , 6 o 7? :) –

5

Sembra che sia possibile registrare da più ingressi video utilizzando l'API AVFoundation. Secondo lo documentation, è possibile utilizzare più ingressi AVCaptureDevice in una AVCaptureSession. In un iPhone 4 questo significa che una sessione potrebbe avere entrambi i dispositivi AVCaptureDevice per entrambe le telecamere. In pratica, potrebbe non essere fattibile. Non l'ho provato quindi non posso dirlo con certezza.

Non penso che lo standard UIImagePickerController possa essere utilizzato per registrare da entrambi allo stesso tempo.

+0

Sì, dovresti quasi certamente usare CoreMedia. Un buon punto di partenza .. http: // StackOverflow.it/questions/10199021/ios-capture-image-from-front-facing-camera e http://adcdownload.apple.com//videos/wwdc_2010__sd/session_409__using_the_camera_with_av_foundation.mov – Fattie