Обратный вызов автофокуса камеры не выполняется

Я использую API камеры на Android, и мой код работает на нескольких платформах, включая Samsung Galaxies и HTC Desire. Пока что у меня проблема только с HTC Desire Z, которая периодически возникает.

в моем коде я вызываю следующие инструкции

camera.startPreview();
camera.autoFocus(autoFocusCallback);

, где я уже создал требуемый класс autoFocusCallback. Я хотел бы еще раз подчеркнуть, что этот код работает на телефонах, в том числе на том, с которым у меня проблемы, поэтому не пытайтесь анализировать код. :) После вызова обратного вызова мой код продолжает делать снимок, но эта часть пока не имеет значения.

Периодическая проблема заключается в том, что для определенного случайного изображения (случается один раз из 20-100), обратного вызова не происходит. Я проверил с помощью моего собственного Log.i (), что это последняя выполненная команда (т.е. код не доходит до обратного вызова). Отладка также показывает, что об ошибках не сообщается.

Чтобы вам было легче, мой обратный вызов выглядит примерно так

AutoFocusCallback autoFocusCallback = new AutoFocusCallback() {
  @Override
  public void onAutoFocus(boolean success, Camera camera) {
    Log.i("tag","this ran"); 
    ...
    ...
  }
};

Результаты Logcat для успешного запуска выглядят примерно так

07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): startPreview X
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): autoFocus E
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): autoFocus X
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): runAutoFocus E
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): af start (fd 49)
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): native_set_afmode: ctrlCmd.status == 0
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): af done: 1
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): runAutoFocus X
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): takePicture(479)

Но проблемный запуск выглядит следующим образом

07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): startPreview X
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): autoFocus E
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): autoFocus X
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): runAutoFocus E
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): af start (fd 49)

, а затем зависает.

Я хотел бы знать, есть ли у кого-нибудь идеи по поводу этой проблемы или вы сталкивались с чем-то подобным?Мне удалось найти в сети только одну ветку с похожими проблемами, вот она http://groups.google.com/group/android-developers/browse_thread/thread/75ecb8db0ae02bdb

11
задан EJoshuaS - Reinstate Monica 24 August 2017 в 17:46
поделиться