本讲是android camera专题系列的第33讲,我们介绍android camera2 api专题的ae自动曝光实战。
更多资源:
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
geekcamera2 ae自动曝光流程
step1: 3a总开关控制
preview#initcameraparameters
|-->cameracontroller2#setscenemode
|-->camerasettings#setscenemode
|-->根据当前的scene mode来设置capturerequest.control_mode
step2: 设置ae 模式
cameracontroller2#createpreviewrequest
|--> camerasettings#setupbuilder
|--> camerasettings#setaemode
|-->根据是否自动曝光和flash状态设置ae mode
geekcamera2 ev控制流程
ui上按ev方式展示可调范围
mainactivity#camerasetup
|--> seekbar exposure_seek_bar = findviewbyid(r.id.exposure_seekbar)
|--> exposure_seek_bar.setonseekbarchangelistener(null)
|--> exposure_seek_bar.setmax( preview.getmaximumexposure() - min_exposure )
|--> exposure_seek_bar.setprogress( preview.getcurrentexposure() - min_exposure )
|--> exposure_seek_bar.setonseekbarchangelistener(new onseekbarchangelistener()
调节ev
onprogresschanged
|--> preview.setexposure
|--> cameracontroller2.setexposurecompensation
|--> camerasettings.setexposurecompensation
|--> 设置control_ae_exposure_compensation
|--> showtoast(getexposurecompensationstring(new_exposure), 0, true)
geekcamera2 ae lock流程
mainactivity#clickedexposurelock
|--> preview#toggleexposurelock
|--> cameracontroller2#setautoexposurelock
|--> set capturerequest.control_ae_lock value