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

时间:2011-12-28 16:17:21

标签: iphone objective-c ios autofocus 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;
}

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

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

我花了几天时间弄清楚为什么我一直失去专注的能力,结果证明我没有发布东西。对于其他人来说,这个答案磕磕绊绊......你一次只能拥有1个AVCaptureSession,否则会让事情变得棘手而你失去了专注的能力。 ZBarReaderViewController使用AVCaptureSession,因此请确保在初始化新的AVCaptureSession之前将其释放。

答案 1 :(得分:1)

我们遇到了与Zbar相同的问题,我们通过在解除模型视图之前延迟2秒来解决它。

答案 2 :(得分:0)

我会更深入地了解您拍照的实施情况。尝试拍摄照片时,请检查是否正确关闭了资源。我不认为zBar实现与它有任何关系......