根据Google官方小组的声明,CONTROL_AE_EXPOSURE_COMPENSATION手动更改已在Android 5.1上中断。我正在寻找一种解决方法,几天了,我发现的唯一方法是连接到SENSOR_INFO_SENSITIVITY_RANGE。但是,我发现使用它有些困难。我的代码如下所示:
if(!modeDisabled){
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
modeDisabled=true;
}
range1 = characteristics.get(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE);
minmin = range1.getLower();
maxmax = range1.getUpper();
int iso = ((i * (maxmax - minmin)) / 100 + minmin);
mPreviewRequestBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, iso);
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, mBackgroundHandler);
当然,“ i”值是从搜索栏获取的进度值,并且在OnProgressChanged函数中关闭了所有内容。
问题在于,操纵搜索栏时没有可见的变化。如有任何帮助,我将不胜感激。
CONTROL_AE_EXPOSURE_COMPENSATION通常在Android 5.1中不会损坏,仅在Nexus 6上已禁用(并将在以后的更新中重新启用)。
如果要禁用自动曝光,除了灵敏度之外,您可能还需要设置曝光时间。您最好还需要设置帧持续时间,尽管两者的默认值都可能是1/30秒,这是合理的。您也可以从自动曝光的最新捕获结果中复制这些值的最新值。
也就是说,您仍然应该在这里看到某种变化。将捕获请求设置为重复请求后,是否有可能在其他地方覆盖捕获请求?您可以检查返回的捕获结果,以了解相机设备正在接收的灵敏度设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句