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 до загрузки сеанса захвата.