0

我正在开发一个应用程序,我有一个相机预览,我在黑暗的环境中拍照。因此,我需要一种方法来手动控制相机的曝光时间以及快门速度、光圈和 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 或设置可供我使用,或者我可以使用任何第三方库来完成此操作。

感谢所有帮助,谢谢。

4

2 回答 2

2

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

于 2016-01-31T16:51:14.400 回答
0

是的,无法直接通过 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。

于 2016-12-08T13:55:05.643 回答