Kamera2 API-Autofokus mit Samsung S5
Arbeite ich mit der neuen Kamera 2 API auf ein Samsung S5. Die unterstützten hardware-Ebene dieses Gerät ist für die Berichterstattung ist LEGACY
, was in Ordnung ist.
Aber ich kann nicht scheinen zu werden in der Lage, auto-Fokus auf dieses Gerät. Die Anforderung auszulösen, auto-Fokus, sieht wie folgt aus:
previewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO);
previewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_START);
state = STATE_PREVIEW;
try {
captureSession.setRepeatingRequest(previewRequestBuilder.build(), captureCallback, backgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
}
Nachdem die Anfrage gesendet wird, wird das Ergebnis der Anfrage ist immer CONTROL_AF_STATE_ACTIVE_SCAN
und gelegentlich CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
.
Das merkwürdige ist, dass, wenn der Staat CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
die auto-Fokus geht wieder in den CONTROL_AF_STATE_ACTIVE_SCAN
Zustand für eine Weile und dann zurück zu CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
, was in einer unendlich-Schleife. Laut der docs, wenn der Zustand ist CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
...
Das Objektiv wird stationär bleiben, bis die AF-Modus (android.Kontrolle.afMode) geändert wird oder ein neuer AF-trigger gesendet wird, um die Kamera-Gerät (android.Kontrolle.afTrigger).
Frage ich mich, ob diese Diskrepanz ist aufgrund der Tatsache, dass der hardware-Ebene ist LEGACY
und dass ich zurückgehen sollte, um mit der veralteten Kamera-API, aber das scheint verrückt für eine so weit verbreitete Features wie Autofokus.
Gibt es jede reccomendations, wie zu behandeln, wie Geräte, die Berichterstattung LEGACY
?
InformationsquelleAutor Alex Fu | 2015-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verzweigte form google Camera2Basic Beispiel und verändert es zu verwenden
CaptureRequest.CONTROL_AF_MODE_AUTO
stattCaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE
Können Sie das Projekt aus git und test - https://github.com/pinhassi/android-Camera2Basic
Oder fügen Sie einfach diese zu
Camera2BasicFragment
:Dann, zu ergänzen, zu
STATE_PREVIEW
block:Und ersetzen Sie alle vorkommen von:
Mit:
Geholfen als start-Punkt, musste testen und ändern Sie eine Menge
für mich es hat funktioniert, Prima. welche weiteren Anpassungen hast du aber?
im nächsten Schritt wurde, wie dies
if(supportsContinuousAutoFocus(activity, mCameraId)){ builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); } else { builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO); builder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_START); }
InformationsquelleAutor Asaf Pinhassi
Ich denke, das Problem mit Ihrer setRepeatingRequest. Soweit ich weiß, CaptureRequest.CONTROL_AF_MODE_AUTO sollte nur dazu führen, dass eine Autofokus-auf einmal auftreten, aber setRepeatingRequest senden kontinuierliche Anfragen. Versuchen Sie es mit capture statt:
InformationsquelleAutor Nick
Erlebe ich das gleiche Problem mit einem Galaxy Note 4 mit Android 5.1.1 - während der gleiche code funktioniert auf einer Vielzahl von anderen Android-Geräten. Es gibt Berichte von ähnlichen Problemen mit Galaxie-S4/S5/S6.
http://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=289824&startId=zzzzz~
https://www.youtube.com/watch?v=lnMoYZwVaFM
So beantworten Sie die Frage: Das ist höchstwahrscheinlich ein bug in Samsungs Implementierung der Kamera-2-Einführung - das scheint zu sein, sehr niedrige Qualität, unfourtunately.
InformationsquelleAutor user2923748
Das Samsung S5 mit Autofokus zurückgegeben
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
, was bedeutet, dass es nicht unterstütztCamera2
api.Habe ich die unter dem filter für die Kamera verwenden in meiner Anwendung.
Wie können Sie sagen, wenn CONTROL_AF_MODE_AUTO unterstützt wird? durch die immer LENS_INFO_MINIMUM_FOCUS_DISTANCE Wert, die availvable nur mit hardware-Unterstützung > LEGACY
InformationsquelleAutor Mayuresh Raut