Камера iPhone теряет автофокус при использовании ZBarSDK - PullRequest
5 голосов
/ 28 декабря 2011

Я работаю над приложением, которое пользователь может выбрать, если он хочет отсканировать штрих-код или сфотографировать что-то.Для фотографирования я использую UIImagePickerController как обычно.Для сканирования штрих-кода я использую ZbarSDK 1.2 ZBarReaderViewController.

. При съемке все отлично работает.При сканировании штрих-кода: если вы запустите приложение и отсканируете штрих-код до того, как сделает снимок, он также отлично работает.

Но вы делаете снимок, а затем возвращаетесь и пытаетесьпри сканировании штрих-кода камера теряет автофокус и просто невозможно сканировать штрих-код.

Подводя итог:
Пуск -> Сканирование -> Работает автофокусировка
Пуск -> Фотосъемка -> Назад -> Сканирование -> Автофокус не работает

Вот как я инициализирую сканер штрих-кода:

-(ZBarReaderViewController *) barcodeScanner
{
    if (nil == _barcodeScanner)
    {
        _barcodeScanner = [ZBarReaderViewController new];
        _barcodeScanner.readerDelegate = self;
        _barcodeScanner.cameraMode = ZBarReaderControllerCameraModeSampling;
        _barcodeScanner.sourceType = UIImagePickerControllerSourceTypeCamera;
    }
    return _barcodeScanner;
}

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 08 марта 2012

Перед загрузкой ZBarReaderViewController убедитесь, что вы выпустили UIImagePickerController, а перед загрузкой UIImagePickerController убедитесь, что вы выпустили ZBarReaderViewController.

Мне потребовались дни, чтобы понять, почему я продолжал терять способность фокусироваться, и оказалось, что я не выпускал вещи. Для других, которые натыкаются на этот ответ ... Вы можете проводить только 1 AVCaptureSession за один раз, в противном случае все становится чокнутым, и вы теряете способность фокусироваться. ZBarReaderViewController использует AVCaptureSession, поэтому обязательно освободите его перед инициализацией нового AVCaptureSession.

1 голос
/ 19 ноября 2013

Мы столкнулись с той же проблемой с Zbar, мы решили ее, установив задержку в 2 секунды, прежде чем отклонить представление модели.

0 голосов
/ 29 декабря 2011

Я бы посмотрел глубже в вашу реализацию фотографирования.Попробуйте проверить, правильно ли вы закрыли ресурс, когда закончите фотографировать.Я не думаю, что реализация zBar имеет какое-либо отношение к этому ...

...