0

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

4

1 回答 1

0

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

于 2012-05-20T19:48:43.427 回答