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); } }
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); }
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(); }
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(); }
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(); } }
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); }
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); } }
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(); }
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) { } } }
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(); }
public void SurfaceCreated(ISurfaceHolder holder) { camera = Android.Hardware.Camera.Open(); var paramsCamera = GetCameraParams(camera); camera.SetParameters(paramsCamera); camera.SetPreviewDisplay(holder); camera.StartPreview(); }
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); }
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(); }
/// <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); } }
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(); }
/// <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); }); }
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); }
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); } }
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); }
/** 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; } } }
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); }
/// <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!!!"); }
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; }
/// <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); }
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; }
/// <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) { } }
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); }