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

标签 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;
}

有什么想法吗?

最佳答案

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

我花了几天时间才弄明白为什么我一直无法集中注意力,结果我发现我没有释放任何东西。对于其他绊倒这个答案的人......你一次只能有 1 个 AVCaptureSession 否则事情会变得古怪,你会失去专注的能力。 ZBarReaderViewController 使用 AVCaptureSession,因此请确保在初始化新的 AVCaptureSession 之前释放它。

关于使用 ZBarSDK 时 iPhone 相机失去自动对焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8658383/

相关文章:

iPhone 5 UITableView

iphone - 为什么我不能在不使用 self 的情况下初始化我的变量

ios - 单击 Swift 中的标签

ios - 数据源更新后,Rx TableView 不会重新加载

ios - 为什么子 TableView Controller 对触摸和滚动没有响应?

iphone - 锁定屏幕上的 "Slide to snooze"

iphone - Storyboard中的 IBAction

iphone - 允许 iPhone 应用程序与 iTunes 同步

iphone - 错误 - Objective-C - 'Application tried to present modally an active controller <splitViewDetailViewController:'

IOS webview 回调 url 更改