相机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和快门速度

我的问题是什么是正确的方法来检查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的设备意味着它们经过合规性测试,可以按预期的手动控制工作。

最新更新