使用ZBarSDK时,iPhone相机失去自动对焦功能

Avi*_*ron 5 iphone objective-c autofocus ios zbar-sdk

我正在开发一个应用程序,用户可以选择是否要扫描条形码或拍摄某些内容.为了拍照,我UIImagePickerController照常使用.对于扫描条形码,我使用的是ZbarSDK 1.2 ZBarReaderViewController.

拍照时一切都很完美.扫描条形码时:如果您拍照启动应用程序并扫描条形码,它也可以完美运行.

但是你是拍照,然后回去尝试扫描条形码,相机失去了自动对焦,而且扫描条形码是不可能的.

总结一下:
开始 - >扫描 - > 自动对焦工作
开始 - >拍照 - >返回 - >扫描 - > 自动对焦不工作

这是我初始化条形码扫描仪的方式:

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

有任何想法吗?

AlB*_*ebe 4

在加载 ZBarReaderViewController 之前,请确保释放 UIImagePickerController,在加载 UIImagePickerController 之前,请确保释放 ZBarReaderViewController。

我花了几天时间才弄清楚为什么我总是失去集中注意力的能力,结果发现我没有释放东西。对于其他偶然发现这个答案的人...您一次只能有 1 个 AVCaptureSession,否则事情会变得很复杂,您会失去集中注意力的能力。ZBarReaderViewController 使用 AVCaptureSession,因此请确保在初始化新的 AVCaptureSession 之前释放它。