android.hardware.camera预览:如何手动设置曝光时间、快门速度、光圈和iso



我正在开发一个应用程序,在该应用程序中我可以预览相机,并在黑暗环境中拍照。因此,我需要一种手动控制相机曝光时间以及快门速度、光圈和iso设置的方法。

我知道这一定是可能的,因为应用程序Long Exposure Camera 2(AAASDream)有一种手动更改曝光时间的方法,而且效果很好。我指的不是我已经尝试过但还不够的曝光补偿。

基于这篇文章,我尝试设置

Camera.Parameters params = camera1.getParameters();
params.set("mode", "m");
params.set("aperture", 80);
params.set("shutter-speed", 9);
params.set("iso", 1600);

但这根本不起作用。

我是否可以使用任何隐藏的API或设置,或者我可以使用任何第三方库来实现这一点。

感谢所有的帮助。

我认为没有办法在android.hardware.camera中手动设置上述值。但看起来新版本android.hard ware.camera2支持这些功能。

是的,无法通过Camera 1 API直接手动设置上述两个参数中的一个。这两个特征都不能通过标准化方法查询,因为它不受支持。

当然,有一种方法可以绕过,通过特殊方法查询或设置这些属性,如目前提到的relime9:

// query all the settings you camera support (API 1)
mCamera.getParameters().flatten();
// set parameters - e.g. aperture
mCamera.getParameters().set("aperture", "80");

此外,特定设备必须支持这种设置,不同设备的设置不同。在某些设备上可以设置某些值,而在其他设备上则不能也只能使用"自动"模式。

出于这个原因,他们开发了Camera 2 API,它更加标准化,并支持这些功能。

最新更新