You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Camera2 API:固定快门时间同时保持ISO自动设置方法

解决Camera2 API固定快门时间+自动ISO的方案

要实现固定短快门时间(1/1000、1/2000)同时保持ISO自动,无需关闭AE模式,通过限制AE的快门时间范围即可达成需求:

核心思路

保持AE模式处于开启状态,利用CONTROL_AE_EXPOSURE_TIME_RANGE参数将AE可选择的快门时间范围锁定为你需要的固定值。此时AE算法会自动调整ISO以维持正常曝光,同时快门时间被强制固定为目标值。

代码实现

先将目标快门时间转换为微秒单位:

  • 1/1000秒 = 1000000 微秒
  • 1/2000秒 = 500000 微秒

修改后的代码如下:

// 保持AE模式开启(可根据场景选择CONTROL_AE_MODE_ON或CONTROL_AE_MODE_ON_AUTO_FLASH)
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);

// 创建快门时间范围,将最小值和最大值设为同一目标值,强制AE使用该快门
Range<Long> fixedExposureRange = new Range<>(EXPOSURE, EXPOSURE);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_TIME_RANGE, fixedExposureRange);

// 提交重复预览请求
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, surfaceView.getmBackgroundHandler());

注意事项

  1. 设备兼容性检查:部分Android设备可能不支持CONTROL_AE_EXPOSURE_TIME_RANGE参数,可通过CameraCharacteristics.CONTROL_AE_AVAILABLE_EXPOSURE_TIME_RANGES获取设备支持的快门范围,确认目标值在支持区间内。
  2. 替代方案(针对不支持的设备):
    先开启AE模式获取当前自动ISO值,关闭AE后手动设置快门和该ISO值。但这种方式无法实时自动调整ISO,需要你手动监听画面亮度变化并更新ISO,模拟自动效果。

内容的提问来源于stack exchange,提问作者Marcel Römer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:37:36