我在使用Android Camera API的onAutoFocus回调时遇到了一些麻烦。在我的Preview类的构造函数中,我将焦点模式设置为FOCUS_MODE_AUTO,将闪存模式设置为FLASH_MODE_AUTO。我向用户呈现的用于拍照的按钮具有附加到其上的自定义动画。当用户按下按钮时,动画开始,自动对焦也是如此:
public void onAnimationStart(Animation animation) {
isAutoFocusing = true;
AutoFocusCallBackImpl autoFocusCallBack = new AutoFocusCallBackImpl();
camera.autoFocus(autoFocusCallBack);
}
然后在onAutoFocus方法中我拍照:
public void onAutoFocus(boolean success, Camera camera) {
if (camera != null) {
try {
camera.takePicture(shutterCallback, rawCallback, jpegCallback);
} catch(Exception e) {
// If something went wrong, we return
// the user to the dashboard.
setResult(Constants.PICTURE_CAMERA_ERROR);
finish();
}
}
}
当光线充足时(无闪光灯),此功能非常有效。然而,在黑暗中,闪光灯熄灭并拍摄照片,但看起来相机没有正确对焦。我知道如果相机不支持自动对焦,则会立即调用onAutoFocus回调,但显然不是这里的情况。在黑暗中是否无法自动对焦(即使使用闪光灯)?
答案 0 :(得分:0)
这显然是硬件问题:要自动对焦,您的设备需要图像。没有图像(在黑暗中) - >没有自动对焦。如果没有图像,相机无法判断图像是否清晰,这就是为什么在黑暗中聚焦不起作用的原因。 这就是为什么相机(我猜一些Android设备也是如此)有一个小灯,在聚焦时打开。但我想大多数手机都没有这种焦点:/