2012-03-08 2 views
4

Это было топало меня в течение нескольких дней ...AVCapture теряет способность устанавливать фокус при использовании Zbar SDK

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

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

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

ответ

2

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

+0

Я столкнулся с подобной проблемой и задавался вопросом, как вы выпустили AVCaptureSession? Типичные методы, похоже, не делают трюк. – mwright

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