我正在制作一个应用程序,我有一个相机预览,我在黑暗的环境中拍照。因此,我需要一种方法来手动控制相机的曝光时间以及快门速度,光圈和ISO的设置。
我知道它必须是可能的,因为应用程序Long Exposure Camera 2(AAASDream)有一种方法可以手动改变曝光时间,并且它可以完美地工作。我不是指我已经尝试过的曝光补偿,但还不够。
基于this post,我尝试设置
Camera.Parameters params = camera1.getParameters();
params.set("mode", "m");
params.set("aperture", 80);
params.set("shutter-speed", 9);
params.set("iso", 1600);
但这根本不起作用。
我是否可以使用任何隐藏的API或设置,或者我可以使用任何第三方库来实现此目的。
感谢所有帮助,谢谢。
答案 0 :(得分:2)
我认为没有办法在android.hardware.camera中手动设置上述值。但看起来新版本android.hardware.camera2支持这些功能。
答案 1 :(得分: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");
此外,特定设备必须支持这样的设置,这些设置因设备而异。在某些设备上可以设置某些值,而您可以设置其他值,并且只能使用'' auto''模式。
出于这个原因,他们开发了Camera 2 API,它更加标准化并支持这些功能。