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