ZbarSDK:停止处理而不禁用相机

时间:2013-09-12 22:10:47

标签: iphone ios delegates camera zbar-sdk

我有一个应用程序,应该能够在几分钟内扫描大量的QR码。所以它必须是被动的。我使用ZBarSDK,我很满意。

当代理人使用processScannedData:(NSString *)scannedData收到数据时,我会显示一条必须手动解除的消息。为了快速,我通过与 AVCaptureDevice 交互来锁定焦距,假设下一个QR码将以相同的距离呈现。

除了在一种情况下,这个系统运行良好:当我在扫描后显示我的信息时,我不会停止相机以避免失去我刚刚锁定的焦点。如果您在解除消息之前提供下面的下一个QR代码,我的processScannedData:(NSString *)scannedData委托方法将捕获它并按预期忽略数据。唯一的问题是,如果您在此时关闭该消息(将相机保持在QR码之上),将无法接收数据但是已经触发了委托方法,您将被迫在另一个处查找几秒钟然后回到你的二维码。

所以这是我的问题:在我明确告诉他这样做之前,是否可以告诉ZBar我不希望他解雇委托方法?是否可以在不停止相机的情况下停止处理数据?

感谢您的帮助

1 个答案:

答案 0 :(得分:7)

好的,所以我找到了解决问题的方法。

我认为在相机工作时无法修改ZBarSDK配置,但这是一个错误。

这是必须使用的工作代码:

- (void)disableQRCodeDetection
{
    // disabling all symbols detection for performance reasons
    [self.scanner setSymbology: 0
                        config: ZBAR_CFG_ENABLE
                            to: 0];
}

- (void)enableQRCodeDetection
{
    // We enable QR Code detection
    [self.scanner setSymbology: ZBAR_QRCODE
                        config: ZBAR_CFG_ENABLE
                            to: 1];
}

这非常棒,您可以在相机工作时调整您想要检测的代码类型!