3

我有一个应用程序应该能够在几分钟内扫描很多二维码。所以它必须是反应性的。我使用 ZBarSDK,对此我很满意。

当代表收到数据时processScannedData:(NSString *)scannedData,我会显示一条必须手动关闭的消息。为了快速,我通过与AVCaptureDevice交互将焦点锁定在此距离,假设下一个 QR 码将显示在相同的距离。

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

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

谢谢您的帮助

4

1 回答 1

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];
}
于 2013-09-12T22:37:57.460 回答