static void SetFlashModeForDevice(AVCaptureFlashMode flashMode, AVCaptureDevice device) { if (device.HasFlash && device.IsFlashModeSupported(flashMode)) { NSError error; if (device.LockForConfiguration(out error)) { device.FlashMode = flashMode; device.UnlockForConfiguration(); } else { Console.WriteLine("Could not lock device for configuration: {0}", error); } } }
private void OnFlashTouch(object sender, EventArgs e) { switch (_flashMode) { case AVCaptureFlashMode.Auto: _flashMode = AVCaptureFlashMode.On; flashButton.SetImage(UIImage.FromBundle("ic_flashOn"), UIControlState.Normal); break; case AVCaptureFlashMode.On: _flashMode = AVCaptureFlashMode.Off; flashButton.SetImage(UIImage.FromBundle("ic_flashOff"), UIControlState.Normal); break; default: _flashMode = AVCaptureFlashMode.Auto; flashButton.SetImage(UIImage.FromBundle("ic_flash"), UIControlState.Normal); break; } }
/// <summary> /// Sets the device's flash settings /// </summary> /// <returns><see cref="T:ChilliSource.Mobile.Core.OperationResult"/> instance indicating the outcome of the operation</returns> /// <param name="device">Device.</param> /// <param name="flashMode">Flash mode.</param> public static OperationResult SetFlashMode(this AVCaptureDevice device, AVCaptureFlashMode flashMode) { if (device.HasFlash && device.IsFlashModeSupported(flashMode)) { NSError error; if (device.LockForConfiguration(out error)) { device.FlashMode = flashMode; device.UnlockForConfiguration(); return(OperationResult.AsSuccess()); } else { return(OperationResult.AsFailure(string.Format("Could not lock device for configuration: {0}", error))); } } else { return(OperationResult.AsSuccess()); } }
public override void ViewDidLoad() { base.ViewDidLoad(); InitElements(); InitDevice(); this.captureButton.TouchUpInside += (sender, e) => { Thread.Sleep(400); try { var _input = new AVCaptureDeviceInput(captureDevice, out NSError errw); _input.Dispose(); this.HandleCapture(); } catch (Exception ex) { allowAndBack(); } }; rotateBn.TouchUpInside += (sender, e) => { try { HandleRotateCamera(); } catch (Exception ex) { allowAndBack(); } }; cancelBn.TouchUpInside += (sender, e) => { this.NavigationController.PopViewController(true); }; flashOptionView.Hidden = true; flashButton.TouchUpInside += (sender, e) => { UpdateFlashView(); }; autoFlashButton.TouchUpInside += (sender, e) => { flashMode = AVCaptureFlashMode.Auto; UpdateFlashView(); autoFlashButton.SetTitleColor(UIColor.Yellow, UIControlState.Normal); onFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); offFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); }; autoFlashButton.SetTitleColor(UIColor.Yellow, UIControlState.Normal); onFlashButton.TouchUpInside += (sender, e) => { if (flashMode != AVCaptureFlashMode.On) { flashMode = AVCaptureFlashMode.On; onFlashButton.SetTitleColor(UIColor.Yellow, UIControlState.Normal); } else { flashMode = AVCaptureFlashMode.Auto; onFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); } autoFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); offFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); UpdateFlashView(); }; offFlashButton.TouchUpInside += (sender, e) => { if (flashMode != AVCaptureFlashMode.Off) { flashMode = AVCaptureFlashMode.Off; offFlashButton.SetTitleColor(UIColor.Yellow, UIControlState.Normal); } else { flashMode = AVCaptureFlashMode.Auto; offFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); } autoFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); onFlashButton.SetTitleColor(UIColor.White, UIControlState.Normal); UpdateFlashView(); }; DetectRotation(); }
static void SetFlashModeForDevice (AVCaptureFlashMode flashMode, AVCaptureDevice device) { if (device.HasFlash && device.IsFlashModeSupported (flashMode)) { NSError error; if (device.LockForConfiguration (out error)) { device.FlashMode = flashMode; device.UnlockForConfiguration (); } else { Console.WriteLine ("Could not lock device for configuration: {0}", error); } } }