作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 android 的新手,正在尝试找出新的 camera2 效果。我不知道如何手动控制相机预览中的 iso。任何帮助将不胜感激。
谢谢。
最佳答案
确定您的设备是否支持手动 ISO 控制的一种方法是检查它是否支持 MANUAL_SENSOR能力。
如果是这样,您可以通过禁用所有自动功能来关闭自动曝光:
previewBuilder.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_OFF);
或者只是禁用自动曝光,保持自动对焦和自动白平衡运行:
previewBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
禁用 AE 后,您可以手动控制曝光时间、感光度 (ISO) 和帧持续时间:
previewBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, exposureTime);
previewBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, sensitivity);
previewBuilder.set(CaptureRequest.SENSOR_FRAME_DURATION, frameDuration);
这些值的有效范围可以从 SENSOR_INFO_EXPOSURE_TIME_RANGE 中找到和 SENSOR_INFO_SENSITIVITY_RANGE用于曝光和灵敏度。对于帧持续时间,可以从 SENSOR_INFO_MAX_DURATION 中找到最大帧持续时间。和最短帧持续时间(最大帧速率)取决于您的 session 输出配置。参见 StreamConfigurationMap.getOutputMinFrameDuration有关这方面的更多详细信息。
请注意,一旦禁用 AE,就必须控制所有 3 个参数(如果您从未设置一个参数,则有默认值,但它们不会自动变化)。您可以在关闭 AE 之前从最后一个 CaptureResult 中复制这些的最后良好值,作为开始。
关于android - 如何在camera2,android中手动控制iso,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293078/
我是一名优秀的程序员,十分优秀!