/** * It "simply" calls {@link Camera#stopPreview()} and checks * for errors */ private async void StopCameraPreview() { try { _camera.StopPreview(); } catch (Exception e) { Console.WriteLine("stopCameraPreview(): tried to stop a non-running preview, this is not an error"); } }
public async Task <byte[]> TakePhoto() { camera.StopPreview(); var ratio = ((decimal)Height) / Width; float degrees = 90; Matrix matrix = new Matrix(); matrix.SetRotate(degrees); var image = Bitmap.CreateBitmap(liveView.Bitmap, 0, 0, liveView.Bitmap.Width, (int)(liveView.Bitmap.Width * ratio), matrix, false); byte[] imageBytes = null; using (var imageStream = new System.IO.MemoryStream()) { await image.CompressAsync(Bitmap.CompressFormat.Jpeg, 50, imageStream); image.Recycle(); imageBytes = imageStream.ToArray(); } camera.StartPreview(); return(imageBytes); }
/** * Stops camera preview, and releases the camera to the system. */ private void releaseCamera() { if (VERBOSE) { Log.Debug(TAG, "releasing camera"); } if (_camera != null) { _camera.StopPreview(); _camera.Release(); _camera = null; } }
/** * Stops camera preview, and releases the camera to the system. */ private void releaseCamera() { if (AppSettings.Logging.SendToConsole) { Log.Debug(TAG, "releasing camera"); } if (_camera != null) { _camera.StopPreview(); _camera.Release(); _camera = null; } }
public async Task <byte[]> TakePhoto() { byte[] imageBytes = null; camera.StopPreview(); var ratio = ((decimal)Height) / Width; try { var image = Bitmap.CreateBitmap(liveView.Bitmap, 0, 0, liveView.Bitmap.Width, (int)(liveView.Bitmap.Width * ratio)); using (var imageStream = new System.IO.MemoryStream()) { await image.CompressAsync(Bitmap.CompressFormat.Jpeg, 70, imageStream); image.Recycle(); imageBytes = imageStream.ToArray(); } camera.StartPreview(); } catch { } return(imageBytes); }
protected override void OnPause() { base.OnPause(); try { _camera.StopPreview(); _camera.Release(); } catch (Exception e) { Console.WriteLine(e.Message); } }
private void ReleaseCameraInstance() { if (_camera != null) { try { _camera.StopPreview(); } catch (System.Exception e) { } _camera.SetPreviewCallback(null); _camera.Release(); _camera = null; _cameraId = -1; } }
private void StopRecording() { timer.Stop(); timer.Visibility = ViewStates.Invisible; //-------------------------------------------------- isVideoStarted = false; recorder.Stop(); recorder.Release(); camera.Lock(); camera.StopPreview(); camera.Release(); FileInputStream inputStream = null; inputStream = new FileInputStream(path); byte[] bytes; byte[] buffer = new byte[8192]; int bytesRead; ByteArrayOutputStream output = new ByteArrayOutputStream(); try { while ((bytesRead = inputStream.Read(buffer)) != -1) { output.Write(buffer, 0, bytesRead); } } catch (Java.Lang.Exception exception) { // e.PrintStackTrace(); } bytes = output.ToByteArray(); string attachedFile = Base64.EncodeToString(bytes, Base64.Default); captureButton.RemoveFromParent(); //on the CameraPage you can get base64 and video path MessagingCenter.Send <string, string>("VideoBase64Ready", "VideoIsReady", attachedFile); MessagingCenter.Send <string, string>("VideoPathReady", "VideoPathReady", path); }
public void StopCamera() { if (mCamera != null) { try { mCamera.StopPreview(); mCamera.SetPreviewDisplay(null); mCamera.SetPreviewCallback(null); mCamera.Lock(); mCamera.Release(); hldr.RemoveCallback(this); mCamera = null; ForegroundService._globalService.CamInService(); try { ((MainActivity)MainActivity.global_activity).soketimizeGonder("CAMREADY", "[VERI][0x09]"); } catch (Exception) { } } catch (Exception) { } } }
public void TurnOff() { if (camera == null) { camera = Camera.Open(); } if (camera == null) { Console.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.FlashModeOff; } if (!string.IsNullOrEmpty(flashMode)) { p.FlashMode = flashMode; camera.SetParameters(p); } camera.StopPreview(); //added on 1/3/2016 by aditmer to try to fix the ongoing issue on Android 6.x and the battery drain issue camera.Release(); camera = null; }
private void stop(bool release) { isRecording = false; try { if (vv != null) { vv.Pause(); } if (camera != null) { camera.StopPreview(); } if (recorder != null && rangeTime > 0) { recorder.Stop(); } if (release) { if (recorder != null) { recorder.Release(); recorder = null; } if (camera != null) { camera.Release(); camera = null; } } chronometer.Stop(); rangeTime = SystemClock.ElapsedRealtime() - chronometer.Base;//ms } catch (Exception ex) { } }
public void StopCamera() { if (mCamera != null) { try { mCamera.StopPreview(); mCamera.SetPreviewDisplay(null); mCamera.SetPreviewCallback(null); mCamera.Lock(); mCamera.Release(); mCamera = null; hldr.RemoveCallback(this); ResetWindowManager(); ForegroundService._globalService.CamInService(); } catch (Exception) { } } if (camSock != null) { try { camSock.Close(); } catch { } try { camSock.Dispose(); } catch { } } }
public override bool OnOptionsItemSelected(IMenuItem item) { // Handle item selection switch (item.ItemId) { case Resource.Id.switch_cam: // Release this camera -> mCameraCurrentlyLocked if (mCamera != null) { mCamera.StopPreview(); mPreview.SetCamera(null); mCamera.Release(); mCamera = null; } // Acquire the next camera and request Preview to reconfigure // parameters. mCamera = Camera.Open((mCameraCurrentlyLocked + 1) % mNumberOfCameras); mCameraCurrentlyLocked = (mCameraCurrentlyLocked + 1) % mNumberOfCameras; mPreview.SwitchCamera(mCamera); // Start the preview mCamera.StartPreview(); return(true); case Android.Resource.Id.Home: Intent intent = new Intent(this.Activity, typeof(MainActivity)); intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop); StartActivity(intent); goto default; default: return(base.OnOptionsItemSelected(item)); } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); var metrics = new DisplayMetrics(); WindowManager.DefaultDisplay.GetRealMetrics(metrics); ScreenX = metrics.WidthPixels; ScreenY = metrics.HeightPixels; number = 0; SetContentView(Resource.Layout.CameraTakePicScreen); isRunning = false; var header = FindViewById<TextView>(Resource.Id.txtFirstScreenHeader); var btns = FindViewById<ImageView>(Resource.Id.imgNewUserHeader); var relLayout = FindViewById<RelativeLayout>(Resource.Id.relativeLayout1); ImageHelper.setupTopPanel(btns, header, relLayout, header.Context); Header.headertext = Application.Context.Resources.GetString(Resource.String.photoTitle); Header.fontsize = 32f; ImageHelper.fontSizeInfo(header.Context); header.SetTextSize(Android.Util.ComplexUnitType.Dip, Header.fontsize); header.Text = Header.headertext; var surface = FindViewById<SurfaceView>(Resource.Id.surfaceCameraView); holder = surface.Holder; holder.AddCallback(this); context = surface.Context; var takePicture = FindViewById<ImageButton>(Resource.Id.btnCamera); takePicture.Tag = 1; var flipView = FindViewById<ImageButton>(Resource.Id.imgFlipView); flipView.Tag = 2; var returnBack = FindViewById<ImageButton>(Resource.Id.imgBack); returnBack.Tag = 0; var bottom = FindViewById<LinearLayout>(Resource.Id.bottomHolder); var btn = new ImageButton[3]; btn[0] = returnBack; btn[1] = takePicture; btn[2] = flipView; ImageHelper.setupButtonsPosition(btn, bottom, context); var cameraInfo = new Android.Hardware.Camera.CameraInfo(); camera = null; int cameraCount = Android.Hardware.Camera.NumberOfCameras; if (cameraCount == 1) flipView.Visibility = ViewStates.Invisible; else { flipView.Click += delegate { if (isRunning) { camera.StopPreview(); isRunning = false; camera.Unlock(); if (cameraCount > 1 && camID < cameraCount - 1) camID++; else camID--; camera = Android.Hardware.Camera.Open(camID); isRunning = true; camera.Lock(); camera.StartPreview(); } }; } takePicture.Click += delegate { var p = camera.GetParameters(); p.PictureFormat = Android.Graphics.ImageFormatType.Jpeg; camera.SetParameters(p); camera.TakePicture(this, this, this); }; returnBack.Click += (object sender, EventArgs e) => { var resultData = new Intent(); resultData.PutExtra("filename", fullFilename); SetResult(!string.IsNullOrEmpty(fullFilename) ? Result.Ok : Result.Canceled, resultData); Finish(); }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); number = 0; SetContentView(Resource.Layout.CameraTakePicScreen); isRunning = false; TextView header = FindViewById<TextView>(Resource.Id.txtFirstScreenHeader); ImageView btns = FindViewById<ImageView>(Resource.Id.imgNewUserHeader); RelativeLayout relLayout = FindViewById<RelativeLayout>(Resource.Id.relativeLayout1); ImageHelper.setupTopPanel(btns, header, relLayout, header.Context); Header.headertext = Application.Context.Resources.GetString(Resource.String.photoTitle); Header.fontsize = 36f; ImageHelper.fontSizeInfo(header.Context); header.SetTextSize(Android.Util.ComplexUnitType.Dip, Header.fontsize); header.Text = Header.headertext; SurfaceView surface = FindViewById<SurfaceView>(Resource.Id.surfaceCameraView); holder = surface.Holder; holder.AddCallback(this); holder.SetType(Android.Views.SurfaceType.PushBuffers); context = surface.Context; ImageButton takePicture = FindViewById<ImageButton>(Resource.Id.btnCamera); takePicture.Tag = 1; ImageButton flipView = FindViewById<ImageButton>(Resource.Id.imgFlipView); flipView.Tag = 2; ImageButton returnBack = FindViewById<ImageButton>(Resource.Id.imgBack); returnBack.Tag = 0; LinearLayout bottom = FindViewById<LinearLayout>(Resource.Id.bottomHolder); ImageButton[] btn = new ImageButton[3]; btn [0] = returnBack; btn [1] = takePicture; btn [2] = flipView; ImageHelper.setupButtonsPosition(btn, bottom, context); int back = (int)Android.Hardware.CameraFacing.Back; int front = (int)Android.Hardware.CameraFacing.Front; Android.Hardware.Camera.CameraInfo cameraInfo = new Android.Hardware.Camera.CameraInfo(); camera = null; int cameraCount = Android.Hardware.Camera.NumberOfCameras; if (cameraCount == 1) flipView.Visibility = ViewStates.Invisible; else { flipView.Click += delegate { if (isRunning) { camera.StopPreview(); isRunning = false; camera.Unlock(); //camera.Release(); if (cameraCount > 1 && camID < cameraCount - 1) camID++; else camID--; camera = Android.Hardware.Camera.Open(camID); isRunning = true; camera.Lock(); camera.StartPreview(); } }; } takePicture.Click += delegate { Android.Hardware.Camera.Parameters p = camera.GetParameters(); p.PictureFormat = Android.Graphics.ImageFormatType.Jpeg; camera.SetParameters(p); camera.TakePicture(this, this, this); }; returnBack.Click += (object sender, EventArgs e) => { Intent resultData = new Intent(); resultData.PutExtra("filename", fullFilename); if (fullFilename != "") SetResult(Result.Ok, resultData); else SetResult(Result.Canceled, resultData); Finish(); }; }
static Task ToggleTorchAsync(bool switchOn) { return(Task.Run(() => { lock (locker) { if (Platform.HasApiLevel(BuildVersionCodes.M) && !AlwaysUseCameraApi) { var cameraManager = Platform.CameraManager; foreach (var id in cameraManager.GetCameraIdList()) { var hasFlash = cameraManager.GetCameraCharacteristics(id).Get(CameraCharacteristics.FlashInfoAvailable); if (Java.Lang.Boolean.True.Equals(hasFlash)) { try { cameraManager.SetTorchMode(id, switchOn); break; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"Unable to SetTorchMode on {id}: {ex.Message}"); } } } } else { if (camera == null) { if (surface == null) { surface = new SurfaceTexture(0); } #pragma warning disable CS0618 // Camera types are deprecated in Android 10+ camera = Camera.Open(); // Nexus 5 and some devices require a preview texture camera.SetPreviewTexture(surface); } var param = camera.GetParameters(); // Deprecated in an earlier android version param.FlashMode = switchOn ? Camera.Parameters.FlashModeTorch : Camera.Parameters.FlashModeOff; camera.SetParameters(param); if (switchOn) { camera.StartPreview(); } else { camera.StopPreview(); camera.Release(); camera.Dispose(); #pragma warning restore CS0618 // Type or member is obsolete camera = null; surface.Dispose(); surface = null; } } } })); }
protected override void Dispose(bool disposing) { base.Dispose(disposing); cam?.StopPreview(); cam?.Release(); }