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 = global::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(); } }
public void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { camera = global::Android.Hardware.Camera.Open((int)cameraType); textureView.LayoutParameters = new FrameLayout.LayoutParams(width, height); surfaceTexture = surface; camera.SetPreviewTexture(surface); RequestLayout(); PrepareAndStartCamera(); }
void SwitchCameraButtonTapped(object sender, EventArgs e) { if (cameraType == CameraFacing.Front) { cameraType = CameraFacing.Back; camera.StopPreview(); camera.Release(); camera = global::Android.Hardware.Camera.Open((int)cameraType); camera.SetPreviewTexture(surfaceTexture); PrepareAndStartCamera(); } else { cameraType = CameraFacing.Front; camera.StopPreview(); camera.Release(); camera = global::Android.Hardware.Camera.Open((int)cameraType); camera.SetPreviewTexture(surfaceTexture); PrepareAndStartCamera(); } }