Ejemplo n.º 1
0
        public void SurfaceCreated(ISurfaceHolder holder)
        {
            // The Surface has been created, now tell the camera where to draw the preview.
            try
            {
                // _camera.SetPreviewDisplay(holder);

                Parameters parameters = _camera.GetParameters();

                foreach (var previewSize in _camera.GetParameters().SupportedPreviewSizes)
                {
                    // if the size is suitable for you, use it and exit the loop.
                    parameters.SetPreviewSize(previewSize.Width, previewSize.Height);
                    break;
                }

                _camera.SetParameters(parameters);
                _camera.SetPreviewDisplay(_holder);
                _camera.StartPreview();
            }
            catch (IOException e)
            {
                Log.Debug(Tag.ToString(), "Error setting camera preview: " + e.Message);
            }
        }
Ejemplo n.º 2
0
        public void SurfaceChanged(ISurfaceHolder holder, global::Android.Graphics.Format format, int w, int h)
        {
            if (camera == null)
            {
                return;
            }

            var parameters = camera.GetParameters();

            parameters.PreviewFormat = ImageFormatType.Nv21;
            // Google Glass requires this fix to display the camera output correctly
            if (Build.Model.Contains("Glass"))
            {
                parameters.SetPreviewFpsRange(30000, 30000);
                parameters.SetPreviewSize(640, 360);
            }
            camera.SetParameters(parameters);

            SetCameraDisplayOrientation(this.activity);

            camera.StartPreview();

            //cameraResolution = new Size(parameters.PreviewSize.Width, parameters.PreviewSize.Height);

            AutoFocus();
        }
        public void FlashOn()
        {
            var para = mCamera.GetParameters();

            para.FlashMode = Android.Hardware.Camera.Parameters.FlashModeTorch;
            mCamera.SetParameters(para);
        }
Ejemplo n.º 4
0
        private void HandleZoom(MotionEvent e, Android.Hardware.Camera.Parameters parameters)
        {
            var maxZoom = parameters.MaxZoom;
            var zoom    = parameters.Zoom;
            var newDist = GetFingerSpacing(e);

            if (newDist > _mDist)
            {
                //zoom in
                if (zoom < maxZoom)
                {
                    zoom++;
                }
            }
            else if (newDist < _mDist)
            {
                //zoom out
                if (zoom > 0)
                {
                    zoom--;
                }
            }

            _mDist          = newDist;
            parameters.Zoom = zoom;
            _camera.SetParameters(parameters);
        }
        /// <summary>
        /// Turn the lamp on
        /// </summary>
        public void TurnOn()
        {
            // Additional information about using the camera light here:
            // http://forums.xamarin.com/discussion/24237/camera-led-or-flash
            // http://stackoverflow.com/questions/5503480/use-camera-flashlight-in-android?rq=1

            if (camera == null)
            {
                camera = Camera.Open();
            }

            if (camera == null)
            {
                Debug.WriteLine("Camera failed to initialize");
                return;
            }

            var p = camera.GetParameters();
            var supportedFlashModes = p.SupportedFlashModes;

            if (supportedFlashModes == null)
            {
                supportedFlashModes = new List <string>();
            }

            var flashMode = string.Empty;

            if (supportedFlashModes.Contains(Android.Hardware.Camera.Parameters.FlashModeTorch))
            {
                flashMode = Android.Hardware.Camera.Parameters.FlashModeTorch;
            }

            if (!string.IsNullOrEmpty(flashMode))
            {
                p.FlashMode = flashMode;
                camera.SetParameters(p);
            }

            camera.StartPreview();

            // nexus 5 fix here: http://stackoverflow.com/questions/21417332/nexus-5-4-4-2-flashlight-led-not-turning-on
            try
            {
                camera.SetPreviewTexture(new SurfaceTexture(0));
            }
            catch (IOException ex)
            {
                // Ignore
            }
        }
        public void OpenCamera()
        {
            if (MyCamera != null)
            {
                MyCamera.StopPreview();
                MyCamera.Release();
                MyCamera = null;
            }

            if (_cameraId >= 0)
            {
                Camera.GetCameraInfo(_cameraId, _cameraInfo);

                MyCamera = Camera.Open(_cameraId);

                Camera.Parameters param = MyCamera.GetParameters();
                param.SetRotation(0);

                MyCamera.SetParameters(param);

                try {
                    if (_surfaceTexture != null)
                    {
                        MyCamera.SetPreviewTexture(_surfaceTexture);
                        MyCamera.StartPreview();
                    }
                } catch (Exception) {
                }
            }

            UpdateRotation();
        }
Ejemplo n.º 7
0
        public void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height)
        {
            camera = Android.Hardware.Camera.Open();
            var parameters = camera.GetParameters();



            parameters.FocusMode = Parameters.FocusModeContinuousPicture;
            parameters.FlashMode = Parameters.FlashModeAuto;
            var aspect = ((decimal)height) / ((decimal)width);


            var previewSize = parameters.SupportedPreviewSizes.First();



            System.Diagnostics.Debug.WriteLine($"Preview sizes: {parameters.SupportedPreviewSizes.Count}");
            var supportedPreviewSizes = parameters.SupportedPreviewSizes;


            parameters.SetPreviewSize(previewSize.Width, previewSize.Height);
            System.Diagnostics.Debug.WriteLine(previewSize.Width + " " + previewSize.Height);
            camera.SetParameters(parameters);

            camera.SetPreviewTexture(surface);
            StartCamera();
        }
Ejemplo n.º 8
0
        private void UpdateCameraAspect()
        {
            try
            {
                Android.Hardware.Camera.Parameters camParams = camera.GetParameters();
                Android.Hardware.Camera.CameraInfo info      = new Android.Hardware.Camera.CameraInfo();
                Android.Hardware.Camera.GetCameraInfo((int)Android.Hardware.CameraFacing.Back, info);

                Android.Hardware.Camera.Size size = GetOptimalPreviewSize(camParams.SupportedPreviewSizes, width, height);

                camParams.SetPreviewSize(size.Width, size.Height);

                int rotation = (info.Orientation + 360) % 360;

                camParams.SetRotation(rotation);

                if (camParams.SupportedFocusModes.Contains(Android.Hardware.Camera.Parameters.FocusModeContinuousPicture))
                {
                    camParams.FocusMode = Android.Hardware.Camera.Parameters.FocusModeContinuousPicture;
                }

                camera.SetParameters(camParams);
            }
            catch (System.Exception e)
            {
                System.Console.WriteLine(e.Message);
            }
        }
        private void ToggleFlashButtonTapped(object sender, EventArgs e)
        {
            flashOn = !flashOn;
            if (flashOn)
            {
                if (cameraType == CameraFacing.Back)
                {
                    toggleFlashButton.SetBackgroundResource(Resource.Drawable.FlashButton);
                    cameraType = CameraFacing.Back;

                    camera.StopPreview();
                    camera.Release();
                    camera = Camera.Open((int)cameraType);
                    var parameters = camera.GetParameters();
                    parameters.FlashMode = Camera.Parameters.FlashModeTorch;
                    camera.SetParameters(parameters);
                    camera.SetPreviewTexture(surfaceTexture);
                    PrepareAndStartCamera();
                }
            }
            else
            {
                toggleFlashButton.SetBackgroundResource(Resource.Drawable.NoFlashButton);
                camera.StopPreview();
                camera.Release();

                camera = Camera.Open((int)cameraType);
                var parameters = camera.GetParameters();
                parameters.FlashMode = Camera.Parameters.FlashModeOff;
                camera.SetParameters(parameters);
                camera.SetPreviewTexture(surfaceTexture);
                PrepareAndStartCamera();
            }
        }
Ejemplo n.º 10
0
        void SwitchTorchStatus()
        {
            if (!Xamarin.Forms.Forms.Context.PackageManager.HasSystemFeature(PackageManager.FeatureCameraFlash))
            {
                return;
            }

            var param = camera.GetParameters();

            if (Element.TorchOn)
            {
                if (param.FlashMode == Android.Hardware.Camera.Parameters.FlashModeTorch)
                {
                    return;
                }
                param.FlashMode = Android.Hardware.Camera.Parameters.FlashModeTorch;
            }
            else
            {
                if (param.FlashMode == Android.Hardware.Camera.Parameters.FlashModeOff)
                {
                    return;
                }
                param.FlashMode = Android.Hardware.Camera.Parameters.FlashModeOff;
            }
            camera.SetParameters(param);
        }
Ejemplo n.º 11
0
        protected sealed override void StartPreview()
        {
            _camera = Camera.Open((int)CurrentCamera);
            _camera.SetDisplayOrientation(90);

            var parameters = _camera.GetParameters();
            if (parameters.SupportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousPicture))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeContinuousPicture;
            }

            var optimalSize = GetOptimalPreviewSize(_width, _height);
            if (optimalSize != null)
            {
                parameters.SetPreviewSize(optimalSize.Width, optimalSize.Height);
            }

            _camera.SetParameters(parameters);

            try
            {
                _camera.SetPreviewTexture(_surface);
                _camera.StartPreview();
            }
            catch (Java.IO.IOException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 12
0
        private void ApplyCameraSettings()
        {
            if (Camera == null)
            {
                OpenCamera(CameraFacing.Back);
            }

            // do nothing if something wrong with camera
            if (Camera == null)
            {
                return;
            }

            var parameters = Camera.GetParameters();

            parameters.PreviewFormat = ImageFormatType.Nv21;

            var supportedFocusModes = parameters.SupportedFocusModes;

            if (Build.VERSION.SdkInt >= BuildVersionCodes.IceCreamSandwich &&
                supportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousPicture))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeContinuousPicture;
            }
            else if (supportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousVideo))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeContinuousVideo;
            }
            else if (supportedFocusModes.Contains(Camera.Parameters.FocusModeAuto))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeAuto;
            }
            else if (supportedFocusModes.Contains(Camera.Parameters.FocusModeFixed))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeFixed;
            }

            var selectedFps = parameters.SupportedPreviewFpsRange.FirstOrDefault();

            if (selectedFps != null)
            {
                // This will make sure we select a range with the lowest minimum FPS
                // and maximum FPS which still has the lowest minimum
                // This should help maximize performance / support for hardware
                foreach (var fpsRange in parameters.SupportedPreviewFpsRange)
                {
                    if (fpsRange[0] <= selectedFps[0] && fpsRange[1] > selectedFps[1])
                    {
                        selectedFps = fpsRange;
                    }
                }
                parameters.SetPreviewFpsRange(selectedFps[0], selectedFps[1]);
            }



            Camera.SetParameters(parameters);

            SetCameraDisplayOrientation();
        }
Ejemplo n.º 13
0
 public void SetupLiveCameraStream()
 {
     lock (lockObj)
     {
         if (surface == null)
         {
             return;
         }
         try
         {
             camera = Android.Hardware.Camera.Open(1);
             camera.SetDisplayOrientation(90);
             var cameraParams = camera.GetParameters();
             foreach (Android.Hardware.Camera.Size size in cameraParams.SupportedPreviewSizes)
             {
                 if (size.Width <= 176)
                 {
                     cameraParams.SetPreviewSize(size.Width, size.Height);
                 }
             }
             camera.SetParameters(cameraParams);
             camera.SetPreviewTexture(surface);
             camera.SetPreviewCallback(this);
             camera.StartPreview();
         }
         catch (Java.IO.IOException ex)
         {
         }
     }
 }
Ejemplo n.º 14
0
        void ToggleFlashButtonTapped(object sender, EventArgs e)
        {
            _flashOn = !_flashOn;
            if (_flashOn)
            {
                if (_cameraType == CameraFacing.Back)
                {
                    _toggleFlashButton.SetBackgroundResource(Resource.Drawable.FlashButton);
                    _cameraType = CameraFacing.Back;

                    _camera.StopPreview();
                    _camera.Release();
                    _camera = Android.Hardware.Camera.Open((int)_cameraType);
                    var parameters = _camera.GetParameters();
                    parameters.FlashMode = global::Android.Hardware.Camera.Parameters.FlashModeTorch;
                    _camera.SetParameters(parameters);
                    _camera.SetPreviewTexture(_surfaceTexture);
                    PrepareAndStartCamera();
                }
            }
            else
            {
                _toggleFlashButton.SetBackgroundResource(Resource.Drawable.NoFlashButton);
                _camera.StopPreview();
                _camera.Release();

                _camera = global::Android.Hardware.Camera.Open((int)_cameraType);
                var parameters = _camera.GetParameters();
                parameters.FlashMode = global::Android.Hardware.Camera.Parameters.FlashModeOff;
                _camera.SetParameters(parameters);
                _camera.SetPreviewTexture(_surfaceTexture);
                PrepareAndStartCamera();
            }
        }
        private void FlashLight()
        {
            if (camera == null || mParams == null)
            {
                return;
            }


            if (!isFlashLight)
            {
                player.Start();
                //mParams = camera.GetParameters();
                //mParams.FlashMode = Parameters.FlashModeTorch;
                //camera.SetParameters(mParams);
                //camera.StartPreview();
                //isFlashLight = true;
                //btnFlash.SetImageResource(Resource.Drawable.power_on);
                camera.Release();
                camera = null;
                camera = Android.Hardware.Camera.Open();
                Android.Hardware.Camera.Parameters mParams = camera.GetParameters();
                mParams.FlashMode = (Android.Hardware.Camera.Parameters.FlashModeTorch);
                camera.SetParameters(mParams);
                var mPreviewTexture = new SurfaceTexture(0);

                camera.SetPreviewTexture(mPreviewTexture);

                camera.StartPreview();
                btnFlash.SetImageResource(Resource.Drawable.power_on);
                isFlashLight = true;
            }
            else
            {
                //camera.Release();
                //camera.StopPreview();
                //camera = null;
                //player.Start();
                //mParams = camera.GetParameters();
                //mParams.FlashMode = Parameters.FlashModeOff;
                //camera.SetParameters(mParams);
                //camera.StartPreview();
                //isFlashLight = false;
                //btnFlash.SetImageResource(Resource.Drawable.power_off);
                camera.Release();
                camera = null;
                camera = Android.Hardware.Camera.Open();
                Android.Hardware.Camera.Parameters mParams = camera.GetParameters();
                mParams.FlashMode = (Android.Hardware.Camera.Parameters.FlashModeOff);
                camera.SetParameters(mParams);
                var mPreviewTexture = new SurfaceTexture(0);

                camera.SetPreviewTexture(mPreviewTexture);

                camera.StartPreview();
                btnFlash.SetImageResource(Resource.Drawable.power_off);
                isFlashLight = false;
            }
        }
        private void StartCamera()
        {
            Parameters parameters = camera.GetParameters();

            parameters.FocusMode = Android.Hardware.Camera.Parameters.FocusModeContinuousPicture;
            camera.SetParameters(parameters);
            camera.SetDisplayOrientation(90);
            camera.StartPreview();
        }
Ejemplo n.º 17
0
        public void SurfaceCreated(ISurfaceHolder holder)
        {
            camera = Android.Hardware.Camera.Open();
            var paramsCamera = GetCameraParams(camera);

            camera.SetParameters(paramsCamera);
            camera.SetPreviewDisplay(holder);
            camera.StartPreview();
        }
Ejemplo n.º 18
0
        private void InitCam()
        {
            cam.SetDisplayOrientation(90);
            cam.SetPreviewDisplay(surfaceView.Holder);
            cam.StartPreview();

            if (parameters.SupportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousVideo))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeContinuousVideo;
            }
            else if (parameters.SupportedFocusModes.Contains(Camera.Parameters.FocusModeMacro))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeMacro;
            }


            cam.SetParameters(parameters);
        }
Ejemplo n.º 19
0
        public void SurfaceChanged(ISurfaceHolder holder, global::Android.Graphics.Format format, int w, int h)
        {
            if (camera == null)
            {
                return;
            }

            var parameters = camera.GetParameters();

            parameters.PreviewFormat = ImageFormatType.Nv21;

            camera.SetParameters(parameters);
            camera.SetDisplayOrientation(90);
            camera.StartPreview();

            //cameraResolution = new Size(parameters.PreviewSize.Width, parameters.PreviewSize.Height);

            AutoFocus();
        }
Ejemplo n.º 20
0
        /// <summary>
        ///Scanning Improvement, VK 10/2018
        /// </summary>
        public void LowLightMode(bool on)
        {
            var parameters = Camera?.GetParameters();

            if (parameters != null)
            {
                SetBestExposure(parameters, on);
                Camera.SetParameters(parameters);
            }
        }
Ejemplo n.º 21
0
        public static void Start(SurfaceTexture Surface, int Width, int Height)
        {
            if (Cam == null)
            {
                Cam = Camera.Open();
            }

            Camera.Parameters Parms = Cam.GetParameters();
            MaxZoom = Parms.MaxZoom;

            if (Parms.SupportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousPicture))
            {
                Parms.FocusMode = Camera.Parameters.FocusModeContinuousPicture;
                Cam.SetParameters(Parms);
            }

            Cam.SetPreviewTexture(Surface);
            Cam.SetDisplayOrientation(90);
            StartPreview();
            SetVertical();
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Toggles the camera torch.
        /// If the camera does not support flash this is a noop.
        /// </summary>
        public void ToggleTorch(AndroidCamera camera, bool state)
        {
            var parameters = camera.GetParameters();

            var flashMode = determineFlashMode(parameters, state);

            invokeIfAvailable(flashMode, val => {
                this.Debug("Flash mode [{0}]", val);
                parameters.FlashMode = val;
                camera.SetParameters(parameters);
            });
        }
Ejemplo n.º 23
0
        private void StartCamera()
        {
            holder = view.Holder;
            holder.AddCallback(this);

            camera = Android.Hardware.Camera.Open(1);
            Android.Hardware.Camera.Parameters p = camera.GetParameters();
            p.SetPreviewSize(320, 240);

            camera.SetDisplayOrientation(90);
            camera.SetParameters(p);
            camera.SetPreviewCallback(this);
        }
Ejemplo n.º 24
0
        private void TurnOnFocusLockIfNothingCaptured()
        {
            if (_cameraModule.IsNothingCaptured)
            {
                var parameters = _camera.GetParameters();

                if (parameters.SupportedFocusModes.Contains(Camera.Parameters.FocusModeFixed))
                {
                    parameters.FocusMode = Camera.Parameters.FocusModeFixed;
                }
                if (parameters.IsAutoExposureLockSupported)
                {
                    parameters.AutoExposureLock = true;
                }
                if (parameters.IsAutoWhiteBalanceLockSupported)
                {
                    parameters.AutoWhiteBalanceLock = true;
                }

                _camera.SetParameters(parameters);
            }
        }
Ejemplo n.º 25
0
        private void start()
        {
            holder = view.Holder;
            holder.AddCallback(this);

            camera = Android.Hardware.Camera.Open(1);
            Camera.Parameters p = camera.GetParameters();
            p.SetPreviewSize(320, 240);
            //p.SetPictureSize(320, 240);

            camera.SetDisplayOrientation(90);
            camera.SetParameters(p);
            //camera.SetPreviewDisplay(holder);
        }
Ejemplo n.º 26
0
	    /** Turns the LED on or off if phone has one. */
	    public void setFlashState(bool state)
        {
            lock (this)
            {
                // If the camera has already been opened, we apply the change immediately
                if (mCamera != null)
                {

                    if (mStreaming && mMode == MODE_MEDIARECORDER_API)
                    {
                        lockCamera();
                    }

                    Parameters parameters = mCamera.GetParameters();

                    // We test if the phone has a flash
                    if (parameters.FlashMode == null)
                    {
                        // The phone has no flash or the choosen camera can not toggle the flash
                        throw new RuntimeException("Can't turn the flash on !");
                    }
                    else
                    {
                        parameters.FlashMode = state ? Parameters.FlashModeTorch : Parameters.FlashModeOff);
                        try
                        {
                            mCamera.SetParameters(parameters);
                            mFlashEnabled = state;
                        }
                        catch (RuntimeException e)
                        {
                            mFlashEnabled = false;
                            throw new RuntimeException("Can't turn the flash on !");
                        }
                        finally
                        {
                            if (mStreaming && mMode == MODE_MEDIARECORDER_API)
                            {
                                unlockCamera();
                            }
                        }
                    }
                }
                else
                {
                    mFlashEnabled = state;
                }
            }
	    }
Ejemplo n.º 27
0
        private void HandleZoom(MotionEvent e, Camera.Parameters p)
        {
            int   maxZoom = p.MaxZoom;
            int   zoom    = p.Zoom;
            float newDist = GetFingerSpacing(e);

            if (newDist > _dist)
            {
                if (zoom < maxZoom)
                {
                    zoom++;
                }
            }
            else if (newDist < _dist)
            {
                if (zoom > 0)
                {
                    zoom--;
                }
            }
            _dist  = newDist;
            p.Zoom = zoom;
            _camera.SetParameters(p);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Events when surfacetexture is available, sets camera parameters
        /// </summary>
        /// <param name="surface">Surface</param>
        /// <param name="width">Width</param>
        /// <param name="height">Height</param>
        public void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height)
        {
#pragma warning disable 618
            camera = Camera.Open((int)cameraType);
            var parameters = camera.GetParameters();
            if (parameters.SupportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousPicture))
            {
                parameters.FocusMode = Camera.Parameters.FocusModeContinuousPicture;
            }
            camera.SetParameters(parameters);
#pragma warning restore 618
            textureView.LayoutParameters = new FrameLayout.LayoutParams(width, height);
            camera.SetPreviewTexture(surface);
            PrepareAndStartCamera();
        }
        public void SurfaceChanged(ISurfaceHolder holder, global::Android.Graphics.Format format, int w, int h)
        {
            if (camera == null)
            {
                return;
            }

            Android.Hardware.Camera.Parameters parameters = camera.GetParameters();

            width  = parameters.PreviewSize.Width;
            height = parameters.PreviewSize.Height;
            //parameters.PreviewFormat = ImageFormatType.Rgb565;
            //parameters.PreviewFrameRate = 15;

            parameters.PreviewFormat = ImageFormatType.Nv21;

            camera.SetParameters(parameters);
            camera.SetDisplayOrientation(90);
            camera.StartPreview();

            cameraResolution = new Size(parameters.PreviewSize.Width, parameters.PreviewSize.Height);

            AutoFocus();
        }
        public void SurfaceChanged(ISurfaceHolder arg0, Android.Graphics.Format arg1, int arg2, int arg3)
        {
            //get camera parameters
            parameters = mCamera.GetParameters();

            //set camera parameters
            mCamera.SetParameters(parameters);

            //mCamera.SetDisplayOrientation (90);
            mCamera.StartPreview();

            //Take the picture
            mCamera.TakePicture(null, null, this);
            //Log.Debug ("","picture taken!!!");
        }
Ejemplo n.º 31
0
        public bool Liga()
        {
            if (TemFlash)
            {
                camera = Camera.Open();

                var parametros = camera.GetParameters();
                parametros.FlashMode = Camera.Parameters.FlashModeTorch;

                camera.SetParameters(parametros);
                camera.StartPreview();

                return true;
            }
            return false;
        }
Ejemplo n.º 32
0
        /// <summary>
        /// Apply camera zoom. The zoom value is capped to the maximum supported zoom value.
        /// If the camera does not support zoom this method is a noop.
        /// </summary>
        public void Zoom(AndroidCamera camera, uint zoom)
        {
            var parameters = camera.GetParameters();

            if (!parameters.IsZoomSupported)
            {
                return;
            }

            var cappedZoom = Convert.ToInt32(zoom);

            cappedZoom = (cappedZoom > parameters.MaxZoom) ? parameters.MaxZoom : cappedZoom;

            this.Debug("Zoom [{0}]", cappedZoom);
            parameters.Zoom = cappedZoom;

            camera.SetParameters(parameters);
        }
Ejemplo n.º 33
0
 private static Camera.Size SetCameraOptimalPreviewSize(Camera camera, int w, int h)
 {
    Camera.Parameters parameters = camera.GetParameters();
    IList<Camera.Size> sizes = parameters.SupportedPreviewSizes;
    int maxWidth = 512, maxHeight = 512;
    Camera.Size optimalSize = GetOptimalPreviewSize(sizes, w, h, maxWidth, maxHeight);
    parameters.SetPreviewSize(optimalSize.Width, optimalSize.Height);
    camera.SetParameters(parameters);
    return optimalSize;
 }
Ejemplo n.º 34
0
        /// <summary>
        /// Create the camera and try to set auto focus with flash
        /// </summary>
        /// <param name="holder"></param>
		public void CreateCamera(ISurfaceHolder holder) {
			try
			{
				_camera = Camera.Open();
				Camera.Parameters p = _camera.GetParameters();
				p.PictureFormat = Android.Graphics.ImageFormatType.Jpeg;
				p.JpegQuality = 100;
				hasAutoFocus = (p.SupportedFocusModes.Contains(Camera.Parameters.FocusModeAuto));
				if (hasAutoFocus)
				{
					p.FocusMode = Camera.Parameters.FocusModeAuto;
					focusReady = true;
				}
				else if (p.SupportedFocusModes.Contains(Camera.Parameters.FocusModeContinuousPicture))
				{
					p.FocusMode = Camera.Parameters.FocusModeContinuousPicture;
				}
				if (p.SupportedFlashModes.Contains(Camera.Parameters.FlashModeOn))
				{
					p.FlashMode = Camera.Parameters.FlashModeOn;
				}
				_camera.SetParameters(p);
				_camera.SetDisplayOrientation(90);
				_camera.SetPreviewCallback(this);
				_camera.Lock();
				_camera.SetPreviewDisplay(holder);
				_camera.StartPreview();
				if (hasAutoFocus)
				{
					Toast.MakeText(this, "Press screen to focus", ToastLength.Long).Show();
				}
			}
			catch (Exception e)
			{
			}
		}
Ejemplo n.º 35
0
        public void SwitchCamera(Camera camera)
        {
            SetCamera (camera);
            try {
                camera.SetPreviewDisplay (mHolder);
            } catch (IOException exception) {
                Log.Error (TAG, "IOException caused by setPreviewDisplay()", exception);
            }
            Camera.Parameters parameters = camera.GetParameters ();
            parameters.SetPreviewSize (mPreviewSize.Width, mPreviewSize.Height);
            RequestLayout();

            camera.SetParameters (parameters);
        }