Android自动对焦黑暗中的回调

时间:2011-11-16 13:24:34

标签: android camera autofocus

我在使用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回调,但显然不是这里的情况。在黑暗中是否无法自动对焦(即使使用闪光灯)?

1 个答案:

答案 0 :(得分:0)

这显然是硬件问题:要自动对焦,您的设备需要图像。没有图像(在黑暗中) - >没有自动对焦。如果没有图像,相机无法判断图像是否清晰,这就是为什么在黑暗中聚焦不起作用的原因。 这就是为什么相机(我猜一些Android设备也是如此)有一个小灯,在聚焦时打开。但我想大多数手机都没有这种焦点:/