Domanda

I'm working on an app that the user can select if he wants to scan a barcode or take a picture of something. For taking a picture I'm using the UIImagePickerController as usual. For scanning barcode I'm using the ZbarSDK 1.2 ZBarReaderViewController.

When taking a picture everything works perfect. When scanning a barcode: If you start the app and scan a barcode before taking a picture, it's also works perfect.

But is you take a picture, and then go back and try to scan a barcode, the camera loses the auto-focus and it's just impossible to scan a barcode.

To summarize:
Start -> Scan -> Auto focus working
Start -> Take Photo -> Back -> Scan -> Auto focus not working

This is how I initialize the barcode scanner:

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

Any ideas?

È stato utile?

Soluzione

Before loading up ZBarReaderViewController make sure you release UIImagePickerController, and before you load up UIImagePickerController make sure you release ZBarReaderViewController.

It took me days to figure out why i kept losing the ability to focus, and turns out that i wasn't releasing things. For others stumbling onto this answer... You can only have 1 AVCaptureSession at a time otherwise things get screwy and you lose the ability to focus. ZBarReaderViewController uses AVCaptureSession so make sure you release it before you initialize a new AVCaptureSession.

Altri suggerimenti

We were facing same issue with Zbar, we solved it by putting a 2 sec delay before dismissing model view.

I would look deeper into your implementation of taking picture. Try to check if you close the resource correctly when done taking the photo. I don't think zBar implementation got anything to do with it...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top