IOS开发,摄像头对焦状态监控
camera autofocus observer?
I find the solution for my case to find when autofocus starts / ends. It's simply dealing with KVO (Key-Value Observing).
In my UIViewController:
已验证。原地址:http://stackoverflow.com/questions/9100357/iphone-camera-autofocus-observer
// callback - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if( [keyPath isEqualToString:@"adjustingFocus"] ){ BOOL adjustingFocus = [ [change objectForKey:NSKeyValueChangeNewKey] isEqualToNumber:[NSNumber numberWithInt:1] ]; NSLog(@"Is adjusting focus? %@", adjustingFocus ? @"YES" : @"NO" ); NSLog(@"Change dictionary: %@", change); } } // register observer - (void)viewWillAppear:(BOOL)animated{ AVCaptureDevice *camDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; int flags = NSKeyValueObservingOptionNew; [camDevice addObserver:self forKeyPath:@"adjustingFocus" options:flags context:nil]; (...) } // unregister observer - (void)viewWillDisappear:(BOOL)animated{ AVCaptureDevice *camDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; [camDevice removeObserver:self forKeyPath:@"adjustingFocus"]; (...) }