2011-12-28 3 views
5

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

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

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

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

Это, как я инициализировать сканер штрих-кода:

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

Любые идеи?

ответ

4

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

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

+1

Я попробую это ... Я уже пришел к соглашению с тем, что я не получу ответа для этого ... –

0

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

+0

Дело в том, что у меня нет реализации «Съемка» ... Я просто инициализирую UIImagePickerController, представляю его модально и получаю обратный вызов, когда фотография была сделана. Я сам не делаю никаких причудливых вещей. –

1

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