2010-10-12 6 views
12

Ich forsche gerade nach einer Anwendung. Eine der interessanten Ideen, die auftauchten, war, gleichzeitig von der Frontkamera und der Gesichtskamera aufzunehmen. Jeder von euch weiß, ob das machbar ist.Kann das iPhone4 gleichzeitig von der Vorder- und Rückseite aufnehmen?

Thanks :)

EDIT: ich meine Kameras vorne und hinten sagen. Ich möchte von beiden Kameras gleichzeitig auf zwei getrennte Streams aufnehmen. Ich hoffe ich bin ein bisschen klarer.

+3

Meinst du die Front- und die Rückseitenkamera oder die Frontkamera und die Eingangskamera? – TofuBeer

+0

Entschuldigung ... Vorder- und Rückseite ... d. H. Beide Kameras gleichzeitig. – dineth

+0

Ich bin auch daran interessiert, posten Sie bitte alles, was Sie entdecken und ich werde das Gleiche tun! –

Antwort

13

Es ist etwas, was die API erlaubt. Ich habe versucht, drei Ansätze auf einem iPhone 4 mit dem neuesten iOS, 4.2.1.

Zunächst habe ich versucht, eine einzelne Aufnahmesitzung mit beiden angeschlossenen Videogeräten als Eingaben zu verwenden. die zweite Vorrichtung zum Anbringen erzeugt eine Ausnahme:

beenden app aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund: '* Mehrere Audio/Video AVCaptureInputs werden derzeit nicht unterstützt '

Zweitens habe ich versucht, zwei verschiedene Sitzungen mit jeweils nur einer Kamera einzurichten und gleichzeitig zu starten. Dies veranlaßte die erste Sitzung, Frames für ungefähr eine Sekunde zu melden, aber sobald die zweite Session beginnt, stoppt die erste von sich aus. Die Reihenfolge, in der Sie 'startRunning' senden, bestimmt, welche der Sitzungen es letztendlich schafft, den anderen zu zwingen.

Schließlich versuchte ich einen einfachen Ping-Pong-Ansatz. Ich erstelle also zwei Sitzungen, starte die erste und sobald sie einen Rahmen meldet, halte sie an und starte die zweite. Dann halte die Sekunde an und beginne die erste, ad infinitum. Leider hat mich die Latenz zwischen dem Anfordern eines Sitzungsbeginns und dem Empfangen des ersten Rahmens alle zwei Sekunden etwa einen Rahmen hinterlassen.

Natürlich ist es möglich, dass ich in meinem Code Fehler gemacht habe, aber ich bin geneigt zu sagen, dass es auf der aktuellen Hardware oder Betriebssystem nicht möglich ist. Ich werde die AVCaptureSession-Benachrichtigungen haken, um zu sehen, ob mir ein expliziter Grund gegeben wurde, warum man anhört und diesen Beitrag aktualisiert.

Ergänzungen: Mein Programm empfängt nur die AVCaptureSessionDidStartRunningNotification-Benachrichtigungen, eine von jeder Aufnahmesitzung. Der angehaltene meldet keinen Fehler, eine Unterbrechung oder einen anderen Stillstand. Ich bin auch nicht in der Lage, ein Problem mit meinem Code zu finden, wie zum Beispiel die Wiederverwendung eines Objekts oder einer Dispatch-Warteschlange, was möglicherweise dieses Problem verursachen könnte.

+2

Haben Sie noch diesen Code herumliegen, um iOS5 zu testen , 6 oder 7? :) –

5

Es scheint möglich zu sein, mit der AVFoundation-API von mehreren Videoeingängen aufzunehmen. Gemäß der documentation können mehrere AVCaptureDevice-Eingänge in einer AVCaptureSession verwendet werden. In einem iPhone 4 bedeutet dies, dass eine Sitzung beide AVCaptureDevices für beide Kameras haben kann. In der Praxis ist dies möglicherweise nicht möglich. Ich habe es nicht versucht, also kann ich nicht mit Sicherheit sagen.

Ich glaube nicht, dass der Standard UIImagePickerController verwendet werden kann, um von beiden gleichzeitig aufzuzeichnen.

+0

Ja, Sie müssten fast sicher CoreMedia verwenden. Ein guter Ausgangspunkt .. http: // Stackoverflow.com/questions/10199021/ios-capture-image-von-front-facing-kamera und http://adcdownload.apple.com//videos/wwdc_2010__sd/session_409__using_the_camera_with_av_foundation.mov – Fattie