我正在使用以下方法设置自iOS 4以来的焦点:
- (void) focusAtPoint:(CGPoint)point
{
AVCaptureDevice *device = [[self captureInput] device];
NSError *error;
if ([device isFocusModeSupported:AVCaptureFocusModeAutoFocus] &&
[device isFocusPointOfInterestSupported])
{
if ([device lockForConfiguration:&error]) {
[device setFocusPointOfInterest:point];
[device setFocusMode:AVCaptureFocusModeAutoFocus];
[device unlockForConfiguration];
} else {
NSLog(@"Error: %@", error);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在iOS 4设备上,这没有任何问题.但是在iOS 5上,实时摄像头会冻结并在几秒钟后完全变黑.没有异常或错误抛出.
如果我注释掉setFocusPointOfInterest或setFocusMode,则不会发生错误.因此,它们的组合都会导致这种行为.