我正在做一个应用程序,用户可以选择,如果他想扫描条形码或拍照的东西。为了拍照,我和往常一样使用UIImagePickerController。对于扫描条形码,我使用的是ZbarSDK 1.2 ZBarReaderViewController。
拍照时一切都很完美。扫描条形码时:如果在拍照之前启动应用程序并扫描条形码,那么它也是完美的。
但是如果你拍了一张照片,然后回去扫描条形码,相机就会失去自动对焦功能,就不可能扫描条形码了。
概括地说:
启动->扫描-> 自动对焦工作
启动->获取照片->回->扫描-> 自动聚焦不工作
我就是这样初始化条形码扫描器的:
-(ZBarReaderViewController *) barcodeScanner
{
if (nil == _barcodeScanner)
{
_barcodeScanner = [ZBarReaderViewController new];
_barcodeScanner.readerDelegate = self;
_barcodeScanner.cameraMode = ZBarReaderControllerCameraModeSampling;
_barcodeScanner.sourceType = UIImagePickerControllerSourceTypeCamera;
}
return _barcodeScanner;
}有什么想法吗?
发布于 2012-03-08 12:53:02
在加载ZBarReaderViewController之前,请确保发布了UIImagePickerController,在加载UIImagePickerController之前,请确保发布了ZBarReaderViewController。
我花了好几天时间才弄明白为什么我一直失去了专注的能力,结果发现我并没有发布任何东西。对于其他人来说,这个问题的答案.你一次只能有一个AVCaptureSession,否则事情会变糟,你就失去了集中注意力的能力。ZBarReaderViewController使用AVCaptureSession,所以在初始化新AVCaptureSession之前一定要释放它。
发布于 2013-11-19 08:14:53
我们和Zbar面临着同样的问题,我们解决了这个问题,在取消模型视图之前,我们延迟了2秒。
发布于 2011-12-29 08:22:40
我会更深入地了解你拍摄照片的实施情况。拍摄完照片后,试着检查是否正确关闭资源。我不认为zBar实现和它有任何关系.
https://stackoverflow.com/questions/8658383
复制相似问题