5

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

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

但是如果你拍照,然后回去尝试扫描条形码,相机会失去自动对焦,无法扫描条形码。

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

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

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

有任何想法吗?

4

3 回答 3

4

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

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

于 2012-03-08T12:53:02.357 回答
1

我们在使用 Zbar 时遇到了同样的问题,我们通过在关闭模型视图之前延迟 2 秒来解决它。

于 2013-11-19T08:14:53.017 回答
0

我会更深入地研究你的拍照实现。尝试在完成拍照后检查您是否正确关闭了资源。我不认为 zBar 实现与它有任何关系......

于 2011-12-29T08:22:40.010 回答