4

camera2 を使用して写真をキャプチャし、フラッシュ モードを自動に設定しました。リクエストパラメータを次のように設定しました。

CaptureRequest.Builder stillCaptureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
stillCaptureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);

上記のコードでは、暗い場所でフラッシュを発光させる必要があります。しかし、期待どおりには機能しませんでした。暗い場所ではフラッシュが発光しませんでした。

camera2 を自動フラッシュ モードに設定するにはどうすればよいですか?

4

2 に答える 2

1

私があなたを助けることができるかどうか見てみましょう!

AE_MODE を使用している場合は、Flash_mode を OFF に設定してみてください。

 builder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON);
 builder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_OFF);

後でプレビュー設定を再度更新し、ビルダーとコールバックへの RepeatingRequest を次のようにします。

mCaptureSession.setRepeatingRequest(builder.build(),
                    callback, backgroundHandler);

また、すべてが正しく設定されているかどうかを確認したい場合はresult.get(CaptureResult.FLASH_STATE)、写真を撮る前または撮る前に、captureCalback の戻り値を使用してフラッシュの状態を回復できることも覚えておいてください。

他の方法では、フラッシュが撮影されているときにプレビューを更新しないことを忘れないでください。そうしないと、写真が撮影される前にフラッシュを延期します.

于 2016-06-27T13:24:02.997 に答える