У меня возникли проблемы с обратным вызовом onAutoFocus API камеры Android.В конструкторе моего класса 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 вызывается немедленно, если камера не поддерживает автофокус, но это явно не тот случай.Автофокусировка невозможна в темноте (даже со вспышкой)?