相机 2 手动检查是否支持 ISO 和 SHUTTER_SPEED

问题描述

我试图检查是否支持不同镜头的shutter_speed和iso,但我不知道如何,一开始我以为我是这样正确检查的:

val capabilities = characteristics.get(REQUEST_AVAILABLE_CAPABILITIES)!!
val canReadSensorSettings = capabilities.contains(
            REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS)
val hasManualSensor = capabilities.contains(
            REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR)

然后正在检查 if(canReadSensorSettings && hasManualSensor) //然后可以为此镜头启用手动曝光。

我认为它有效然后发现在某些前置镜头上这两个值都是错误的但我仍然可以更改 ISO 和 Shutter_Speed

我再次提出问题,检查相机设备的 ISO 和 SHTTER_SPEED 支持的正确方法是什么。

顺便说一句,我已经看到了这个,但无法从中获取,可能解决方案在此链接中,但我无法获取:https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#REQUEST_AVAILABLE_CAPABILITIES

解决方法

有些设备可能允许更改曝光/ISO 值,即使它们没有列出 MANUAL_SENSOR 功能(请注意,列出 MANUAL_SENSOR 意味着 READ_SENSOR_SETTINGS 也将始终存在,因此您只需检查 MANUAL_SENSOR)。

这意味着它们在某种程度上不满足 MANUAL_SENSOR 的所有要求,因此可能有一些控件不起作用,或者与 API 要求的工作方式不同。

因此,为了可靠性,如果未列出 MANUAL_SENSOR 功能,我不会尝试使用手动设置,除非您要自己测试每个设备以确保一切正常。坚持使用列出 MANUAL_SENSOR 的设备意味着它们经过合规性测试,可以通过手动控制按预期工作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...