2011-12-28 17 views
5

Estoy trabajando en una aplicación que el usuario puede seleccionar si quiere escanear un código de barras o tomar una fotografía de algo. Para tomar una foto, estoy usando el UIImagePickerController como de costumbre. Para escanear códigos de barras, estoy usando el ZbarSDK 1.2 ZBarReaderViewController.La cámara del iPhone pierde el enfoque automático al usar ZBarSDK

Al tomar una foto todo funciona perfecto. Al escanear un código de barras: Si inicia la aplicación y escanea un código de barras antes de tomar una foto, también funciona perfecto.

Pero, ¿hace una fotografía y luego regresa e intenta escanear un código de barras, la cámara pierde el enfoque automático y es imposible escanear un código de barras.

En resumen:
Inicio -> Scan ->enfoque automático trabajando
Inicio -> Tomar foto -> Volver -> Scan ->automático no enfoca trabajo

Así es como me inicializar el escáner de código de barras:

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

¿Alguna idea?

Respuesta

4

Antes de cargar ZBarReaderViewController, asegúrese de liberar UIImagePickerController y antes de cargar UIImagePickerController, asegúrese de liberar ZBarReaderViewController.

Tardé días en descubrir por qué perdía la capacidad de concentración, y resulta que no estaba lanzando cosas. Para otros, tropezar con esta respuesta ... Solo puedes tener 1 AVCaptureSession a la vez, de lo contrario las cosas se pondrán complicadas y perderás la capacidad de concentrarte. ZBarReaderViewController usa AVCaptureSession así que asegúrese de liberarlo antes de inicializar una nueva sesión de AVCapture.

+1

Voy a intentar eso ... Ya llegué a la paz con el hecho de que no obtendré una respuesta para este ... –

0

Me gustaría profundizar en la implementación de la toma de fotografías. Intente verificar si cierra el recurso correctamente cuando termine de tomar la foto. No creo que la implementación de zBar tenga nada que ver con eso ...

+0

El punto es - No tengo implementación de "Tomar foto" ... Estoy inicializando el UIImagePickerController, lo presento de manera modal y obtengo la devolución de llamada cuando se tomó la foto. No estoy haciendo ninguna cosa elegante yo mismo. –

1

Estábamos enfrentando el mismo problema con Zbar, lo resolvimos poniendo un retraso de 2 segundos antes de descartar la vista de modelo.

Cuestiones relacionadas