2014-12-23 3 views
4

Android camera2 API를 사용하여 플래시로 수동 (터치) 초점을 수행하는 방법은 무엇입니까?Android 카메라 2를 사용하여 플래시로 수동 포커스

내 captureRequest 설정은 다음과 같습니다 1. - TEMPLATE_PREVIEW 2 CONTROL_AE_MODE - CONTROL_AE_MODE_OFF 3 FLASH_MODE - FLASH_MODE_SINGLE 4 CONTROL_AF_TRIGGER - CONTROL_AF_TRIGGER_START

사용 :

CaptureSession.capture(captureRequest.build(), captureCallback, null); 

결과 : 카메라 빛이 충분하면 초점을 맞춘다. 그렇지 않으면 플래시가 빠르게 깜박이고 초점이 맞지 않습니다.

+0

당신이하고 싶은 것이 명확하지 않습니다. 수동 노출을 사용하고 있지만 초점을 맞추기 위해 플래시를 켜고 싶습니까? 아니면 최종 캡처를 위해 플래시를 발광시키고 싶습니까? 아니면 완전히 다른 것? 지금 당장 당신은 단일 플래시를 발사하고 하나의 요청으로 AF를 트리거하려고합니다. 이는 거의 작동하지 않을 것입니다. –

+0

초점 맞추기와 최종 촬영을 위해 플래시를 사용하고 싶습니다. Google 카메라 앱 –

+0

의 '플래시 켜기'모드와 ​​유사 AE_MODE_OFF를 사용하는 경우 현재 제한된 방식으로 만 플래시를 수동으로 관리해야합니다. 포커싱을 시작하기 전에 플래시를 토치 (TORCH)로 전환 한 다음 고해상도 캡처를 위해 SINGLE (단일)으로 설정해야합니다. –

답변

2
이 방법으로 플래시를 수동 (터치) 초점을 수행 할 수 있습니다

:

mPreviewBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON_AUTO_FLASH); 

사용 트리거는 사용할 때 AE와 AF 모두 : 다음

mPreviewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_CANCEL); 
mPreviewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START); 
mPreviewBuilder.set(CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER, CameraMetadata.CONTROL_AE_PRECAPTURE_TRIGGER_START); 

과 :

mCameraCaptureSession.setRepeatingRequest(mPreviewBuilder.build(), mPreviewSessionCallback, mHandler); 
+0

답장을 보내 주셔서 감사합니다! 나는 항상 플래시 빛이 필요하다는 것을 잊어 버렸다. 자동이 아니다. 그리고 "setRepeatingRequest"에 대해서는 잘 모르겠습니다. 터치 포커스는 단지 하나의 동작입니다. 마지막 질문 : CONTROL_AE_MODE이 아닌 FLASH_MODE 매개 변수를 사용하여 플래시 작업을 관리 할 수 ​​있습니까? –

+0

항상 플래시 켜기 : mBuilder.set (CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH); – yydcdut

+0

"setRepeatingRequest"는 SDK 문서의 "이 캡처 세션에 의해 이미지 캡처를 끊임없이 반복적으로 요청하는 중"을 의미합니다. – yydcdut

관련 문제