2014-12-23 9 views
4

Как выполнить ручной (сенсорный) фокус со вспышкой с помощью камеры Android2 api?Ручной фокус со вспышкой с помощью камеры Android2

Мои настройки 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

Я хочу сделать вспышку для фокусировки и для окончательного захвата. Как режим «flash on» приложения для камеры Google –

+0

Если вы используете AE_MODE_OFF, вам придется вручную управлять вспышкой, которая возможна только в ограниченном режиме. Перед тем, как начать фокусировку, вам нужно переключить вспышку в TORCH, а затем установить ее в SINGLE для захвата высокого разрешения. –

ответ

2

вы можете попробовать выполнить ручную (Touch) фокус со вспышкой таким путем:

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

при использовании TRIGGER, используйте как 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». Сенсорный фокус - это просто одно действие. И последний вопрос: могу ли я управлять работой вспышки параметром FLASH_MODE, а не CONTROL_AE_MODE? –

+0

FLASH всегда ВКЛ: mBuilder.set (CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH); – yydcdut

+0

«setRepeatingRequest» означает «запросить бесконечное повторение захвата изображений с помощью этого сеанса захвата» в документе SDK. – yydcdut