VoiceCamera.CameraFragment.OpenCamera C# (CSharp) Méthode

OpenCamera() private méthode

private OpenCamera ( ) : void
Résultat void
        private void OpenCamera()
        {
            Activity activity = Activity;
            if (activity == null || activity.IsFinishing || mOpeningCamera) {
                return;
            }
            mOpeningCamera = true;
            CameraManager manager = (CameraManager)activity.GetSystemService (Context.CameraService);
            try
            {

                bool front = Arguments.GetBoolean(EXTRA_USE_FRONT_FACING_CAMERA);
                if(front)
                    Log.Debug("VoiceCamera", "Front specified");
                else
                    Log.Debug("VoiceCamera", "Back Specified");

                Log.Debug("VoiceCamera", "Front ID: " + (int)LensFacing.Front + " Back ID: " + (int)LensFacing.Back);

                foreach(var cameraId in manager.GetCameraIdList())
                {

                    // To get a list of available sizes of camera preview, we retrieve an instance of
                    // StreamConfigurationMap from CameraCharacteristics
                    var characteristics = manager.GetCameraCharacteristics(cameraId);
                    var lens = characteristics.Get(CameraCharacteristics.LensFacing);
                    Log.Debug("VoiceCamera", "LensFacing: " + lens.ToString());
                    if(!IsCameraSpecified)
                    {
                        Log.Debug("VoiceCamera", "camera not specified");
                        if((int)lens == (int)LensFacing.Front)
                        {
                            Log.Debug("VoiceCamera", "Skip front facing camera");
                            //we don't use a front facing camera in this sample.
                            continue;
                        }
                    }
                    else if(!ShouldUseCamera((int)lens))
                    {
                        Log.Debug("VoiceCamera", "Skipping over camera, should not use");
                        //TODO: Handle case where there is no camera match
                        continue;
                    }

                    Log.Debug("VoiceCamera", "Using this camera");

                    StreamConfigurationMap map = (StreamConfigurationMap)characteristics.Get(CameraCharacteristics.ScalerStreamConfigurationMap);
                    mPreviewSize = map.GetOutputSizes(Java.Lang.Class.FromType(typeof(SurfaceTexture)))[0];
                    Android.Content.Res.Orientation orientation = Resources.Configuration.Orientation;
                    if (orientation == Android.Content.Res.Orientation.Landscape)
                    {
                        mTextureView.SetAspectRatio(mPreviewSize.Width, mPreviewSize.Height);
                    }
                    else
                    {
                        mTextureView.SetAspectRatio(mPreviewSize.Height, mPreviewSize.Width);
                    }

                    // We are opening the camera with a listener. When it is ready, OnOpened of mStateListener is called.
                    manager.OpenCamera(cameraId, mStateListener, null);
                    return;
                }
            }
            catch (CameraAccessException ex) {
                Toast.MakeText (activity, "Cannot access the camera.", ToastLength.Short).Show ();
                Activity.Finish ();
            } catch (NullPointerException) {
                var dialog = new ErrorDialog ();
                dialog.Show (FragmentManager, "dialog");
            }
        }