之前博文《Android学习笔记之——Camera2架构 》已经介绍过CaptureRequest了~
CaptureRequest表示一个捕捉的请求。我们可以为不同的场景(预览、拍照)创建不同的捕捉请求,并可以配置不同的捕捉属性,如:预览分辨率,预览目标,对焦模式、曝光模式等等。
通过 CameraDevice 对象的 createCaptureRequest() 方法得到一个 CaptureRequest.Builder 对象,基本配置都是通过该构造者来配置;最后通过 CaptureRequest.Builder 对象的 build() 方法便可得到 CaptureRequest 实例
SENSOR_EXPOSURE_TIME
This control is only effective if CaptureRequest#CONTROL_AE_MODE
or CaptureRequest#CONTROL_MODE
is set to OFF; otherwise the auto-exposure algorithm will override this value.
也就是说要把上面两者设置为off的时候才可以控制
通过下面简单的三句代码,即可控制相机的曝光度
builder.set(CaptureRequest.CONTROL_AE_MODE,0);
builder.set(CaptureRequest.CONTROL_MODE,0);
builder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, (long) 10000);
效果如下图所示
遇到问题最快的解决办法就是查询官方的说明了
https://developer.android.com/reference/android/hardware/camera2/CaptureResult#SENSOR_EXPOSURE_TIME
参考资料
https://blog.csdn.net/gwplovekimi/article/details/106076963
https://blog.csdn.net/afei__/article/details/86326991
https://developer.android.com/reference/android/hardware/camera2/CaptureResult