public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
sessionQueue.DispatchAsync (() => {
switch (setupResult) {
// Only setup observers and start the session running if setup succeeded.
case AVCamSetupResult.Success:
AddObservers ();
session.StartRunning ();
sessionRunning = session.Running;
break;
case AVCamSetupResult.CameraNotAuthorized:
DispatchQueue.MainQueue.DispatchAsync (() => {
string message = "AVCam doesn't have permission to use the camera, please change privacy settings";
UIAlertController alertController = UIAlertController.Create ("AVCam", message, UIAlertControllerStyle.Alert);
UIAlertAction cancelAction = UIAlertAction.Create ("OK", UIAlertActionStyle.Cancel, null);
alertController.AddAction (cancelAction);
// Provide quick access to Settings.
alertController.AddAction (UIAlertAction.Create ("Settings", UIAlertActionStyle.Default, action => {
UIApplication.SharedApplication.OpenUrl (new NSUrl (UIApplication.OpenSettingsUrlString), new NSDictionary (), null);
}));
PresentViewController (alertController, true, null);
});
break;
case AVCamSetupResult.SessionConfigurationFailed:
DispatchQueue.MainQueue.DispatchAsync (() => {
string message = "Unable to capture media";
UIAlertController alertController = UIAlertController.Create ("AVCam", message, UIAlertControllerStyle.Alert);
alertController.AddAction (UIAlertAction.Create ("OK", UIAlertActionStyle.Cancel, null));
PresentViewController (alertController, true, null);
});
break;
}
});
}