2015-05-21 5 views
8

Was ich erreichen möchte: Greife gleichzeitig auf die vordere und die hintere Kamera zu.Greifen Sie gleichzeitig auf die Vorder- und Rückseite der Kamera zu

Was ich recherchiert habe: Ich weiß, Android Kamera API bietet keine Unterstützung für die Verwendung mehrerer Instanzen der Kamera und Sie müssen eine Kamera freigeben, bevor Sie die andere verwenden. Ich habe Dutzende Fragen dazu gelesen, ich weiß auf einigen Geräten ist es möglich (wie Samsung S4 oder andere neue Geräte von ihnen). Ich habe auch herausgefunden, dass es möglich ist, Zugriff auf beide in Android KitKat auf einigen Geräten zu haben. Ich weiß auch, dass auf API> = 21, mit der Camera2 API, es möglich ist, auf beide gleichzeitig zuzugreifen, da es threadsicher ist.

Was ich bisher habe: Implementierung für den Zugriff auf die Kameras einzeln, um ein Bild-in-Bild bereitzustellen.

Ich weiß, dass es nicht möglich ist, Dual-Kamera gleichzeitig auf jedem Gerät zu implementieren, ich möchte nur eine Möglichkeit, um es für einige Geräte zur Verfügung zu stellen.

Wie kann ich testen, ob das Gerät auf beide zugreifen kann?

Ich habe auch nach einer Bibliothek gesucht, die mir so etwas erlauben kann, aber ich habe nichts gefunden. Gibt es eine solche Bibliothek?

Ich möchte diese Funktion für so viele Geräte wie möglich zur Verfügung stellen, und für die anderen, werde ich den aktuellen Status (eins nach dem anderen) der Funktion verlassen.

Kann mir bitte jemand helfen, zumindest mit einigen Ratschlägen?

Danke !

Antwort

10

Die Android-Kamera-APIs ermöglichen im Allgemeinen die gleichzeitige Verwendung mehrerer Kameras, aber die meisten Geräte verfügen in der Praxis nicht über ausreichende Hardwareressourcen, z. B. gibt es oft nur einen von beiden Kameras gemeinsam genutzten Kamerabildprozessor.

Es gibt keine Abfrage, die in den Android-APIs enthalten ist, die Ihnen im Voraus mitteilen, ob Sie mehrere Kameras gleichzeitig verwenden können.

Die einzige Möglichkeit zu sagen, ist zu versuchen, eine zweite Kamera zu öffnen, wenn Sie bereits eine geöffnet haben. Wenn Sie die zweite Kamera öffnen können, können Sie Bild-in-Bild usw. ausführen. Wenn Sie beim Öffnen der zweiten Kamera eine Ausnahme erhalten, unterstützt das betreffende Gerät nicht das Öffnen beider Kameras.

+0

Danke, das wusste ich nicht. Ich nehme an, dass neue Samsung Geräte einen Bildprozessor für jede Kamera haben. Ich werde versuchen, es so zu implementieren und es auf mehreren Geräten zu testen. – DDsix

+0

Samsung S4, S5 und S6 unterstützen Dual-Kamera-Modus, aber sie entschieden sich dafür, eine proprietäre API dafür zu verwenden; Es ist nicht einmal mit Samsung Camera SDK veröffentlicht. Gleiches gilt für LG Optimus G Pro. * Ich glaube, dass es möglich ist, diese API zurückzuentwickeln, habe dies aber noch nicht gesehen. Wahrscheinlich gibt es nicht genug Anreize. * –

+2

Siehe auch http://Stackoverflow.com/a/25144412/192373 –

0

Sie können aufgrund von Hardwarebeschränkungen nicht auf alle Kameras in allen Android-Mobiltelefonen zugreifen. Die beste Alternative kann die Kamera einzeln nacheinander verwenden. Dazu können Sie ein einzelnes Kameraobjekt verwenden und das Kamera-Gesicht ändern, um ein anderes Foto aufzunehmen.

Ich habe dies in einer meiner Anwendung getan. https://play.google.com/store/apps/details?id=com.ushaapps.bothie

0

Es ist möglich mit der Android Camera2 API, aber wie oben angegeben, haben die meisten Geräte keine Hardware-Unterstützung. Wenn Sie ein Nexus 5X, Nexus 6 oder Nexus 6P haben, funktioniert es und Sie können mit diesem BothCameras app testen. Ich habe Blitting implementiert, um auch Videoaufnahmen (zusätzlich zu Standbildern) mit dem Hardware-Encoder h264 zu ermöglichen.

Verwandte Themen