这已经困扰了我好几天......
在我的应用程序中,我使用AVCapture拍照,然后我使用ZBar SDK扫描条形码。问题是一旦我拍完照片后加载ZBar,我在拍摄另一张照片时就失去了自动对焦的能力。如果我首先加载ZBar,那么我可以在拍照时调整焦距,但是ZBar失去了对焦的能力!我尝试将ZBar换成ShopSavvy代码扫描程序SDK并且遇到同样的问题......
以下是我用来设置相机打开自动对焦的代码,但没有发生错误,我无法对焦!
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];
}
}
}
答案 0 :(得分:2)
事实证明,您需要在加载新的捕获会话之前释放每个捕获会话。在这种情况下,我没有在加载ZBar之前释放我的捕获会话,并且在加载捕获会话之前我没有释放ZBar。