2013-09-12 2 views
3

У меня есть приложение, которое должно иметь возможность сканировать много QR-кодов за несколько минут. Поэтому он должен быть реактивным. Я использую ZBarSDK, и я доволен этим.ZbarSDK: прекратить обработку без отключения камеры

Когда данные получены делегатом с processScannedData:(NSString *)scannedData, я представляю сообщение, которое должно быть уволено вручную. Чтобы быть быстрым, я блокирую фокус на этом расстоянии, взаимодействуя с AVCaptureDevice, предполагая, что следующие QR-коды будут представлены на том же расстоянии.

Эта система работает очень хорошо, за исключением одной ситуации: когда я представляю свое сообщение после сканирования, я не останавливаю камеру, чтобы не потерять фокус, который я только что заблокировал. Если вы отправите следующий QR-код ниже, прежде чем отклонять сообщение, мой метод делегата processScannedData:(NSString *)scannedData поймает его и проигнорирует данные, как ожидалось. Единственная проблема заключается в том, что если вы отклоняете сообщение в этот момент (сохраняя камеру над QR-кодом), данные не будут получены, но метод делегирования уже запущен, вам придется искать несколько секунд на другом и затем вернитесь к своему QR-коду.

Итак, вот мой вопрос: можно ли сказать ZBar, что я не хочу, чтобы он уволил метод делегата, пока я прямо не скажу ему это сделать? Можно ли прекратить обработку данных без остановки камеры?

Спасибо за вашу помощь

ответ

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]; 
} 

Это действительно здорово, что вы можете адаптировать типы кодов, которые вы хотите, чтобы обнаружить, когда камера работает!

Смежные вопросы