Пример #1
0
 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;
            }
        }
Пример #3
0
 /// <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());
     }
 }
Пример #4
0
        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);
				}
			}
		}