检测有源摄像机的变化(前/后)

时间:2014-10-23 19:29:11

标签: ios objective-c camera xamarin uiimagepickercontroller

我的代码根据使用的相机执行不同的逻辑,例如:

if(aPickerInstance.cameraDevice == UIImagePickerControllerCameraDeviceFront){
   // Front camera logic
}else{
   // Rear camera logic
}

我的问题是,当切换发生时,从前到后,反之亦然,我发现没有办法告诉" cameraDevice"财产价值已经改变,以便重新评估我的州。 (基本上重新运行逻辑块以为新选择的摄像机设置正确的一切)。

1 个答案:

答案 0 :(得分:0)

创建选择器时,添加一个观察者:

[_picker addObserver:self forKeyPath:@"cameraDevice" options:NSKeyValueObservingOptionNew context:nil];

然后添加处理程序:

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    NSLog(@"Keypath %@ change %@", keyPath, change);
}

更改[@“new”]会为cameraDevice提供一个新值。您也可以使用它来检测更改并触发您自己的cameraDevice状态检查。