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



    (...)

}

 

你可能感兴趣的:(ios开发)