Android 6.1、sdk 23 で新しい camera2 API を使用しています。
プレビューと静止画キャプチャの 2 つのリクエストがあります。静止画のリクエストごとにフラッシュが発光するようにしたいのですが、プリフラッシュはありません。現在、私のリクエストは次のようになっています。
CaptureRequest.Builder requester = mCameraDevice.createCaptureRequest(mCameraDevice.TEMPLATE_STILL_CAPTURE);
requester.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
requester.set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE);
requester.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, CaptureRequest.CONTROL_AE_STATE_FLASH_REQUIRED);
requester.set(CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER, CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL);
requester.addTarget(mCaptureBuffer.getSurface());
mCaptureSession.capture(requester.build(), null, null);
ある携帯電話 (Motorola Moto G) では動作するようですが、別の携帯電話 (Nexus 5 -- フラッシュがまったくオンになりません) では動作しないようです。他のカメラアプリでトリガーできるので、Nexus のフラッシュが機能することはわかっているので、設定していないデフォルトがいくつかあると思います。
これを行う別の方法/設定できるフラグはありますか?
ありがとう!
編集:
私が抱えていた問題の多くは、
LIMITED
camera2 しかサポートしていないデバイスで作業したことが原因であることがわかりました。カメラ 2 を使用してカメラにアクセスできるからといって、すべての機能を制御できるわけではありません。詳細については、この回答をご覧ください