AVCapture теряет способность устанавливать фокус при использовании ZBar SDK

Это ставило меня в тупик в течение нескольких дней...

В моем приложении я использую AVCapture, чтобы сделать фотографию, затем я использую ZBar SDK для сканирования штрих-кода. Проблема в том, что после загрузки ZBar после съемки я теряю возможность автоматической фокусировки при съемке другого изображения. Если я сначала загружаю ZBar, то я могу настроить фокус при съемке, но ZBar теряет способность фокусироваться! Я попытался заменить ZBar на SDK сканера кода ShopSavvy, и я столкнулся с той же проблемой...

Вот код, который я использую, чтобы настроить камеру на автоматическую фокусировку, но ошибки не возникает, и я не могу сфокусироваться!

AVCaptureDevice *device = [[self videoInput] device];
if ([device isFocusPointOfInterestSupported] && [device isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus]) {
    NSError *error;
    if ([device lockForConfiguration:&error]) {
        [device setFocusPointOfInterest:point];
        [device setFocusMode:AVCaptureFocusModeContinuousAutoFocus];
        [device unlockForConfiguration];
    } else {
        if ([[self delegate] respondsToSelector:@selector(captureManager:didFailWithError:)]) {
            [[self delegate] captureManager:self didFailWithError:error];
        }
    }
}

1 ответ

Решение

Оказывается, вам нужно освобождать каждую сессию захвата перед загрузкой новой. В этом случае я не выпускал сеанс захвата до загрузки ZBar, и я не выпускал ZBar до загрузки сеанса захвата.

Другие вопросы по тегам