Я использую следующий метод для установки точки фокуса начиная с 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);
}
}
}
На устройствах iOS 4 это работает без каких-либо проблем.Но на iOS 5 прямая трансляция с камеры зависает и через несколько секунд становится полностью черной.Нет исключений или выдается ошибка.
Ошибка не произойдет, если я закомментирую либо setFocusPointOfInterest, либо setFocusMode.Таким образом, сочетание их обоих приведет к такому поведению.