public void OpenCamera(global::Android.Hardware.Camera camera) { _camera = camera; var cameraParams = _camera.GetParameters(); if (Resources.Configuration.Orientation != global::Android.Content.Res.Orientation.Landscape) { cameraParams.Set("orientation", "portrait"); _camera.SetDisplayOrientation(90); cameraParams.SetRotation(90); } else { cameraParams.Set("orientation", "landscape"); _camera.SetDisplayOrientation(0); cameraParams.SetRotation(0); } var bestPictureSize = GetWorstPictureSize(cameraParams); if (bestPictureSize != default(Size)) { cameraParams.SetPictureSize(bestPictureSize.Width, bestPictureSize.Height); } _camera.SetParameters(cameraParams); if (_shouldInitializeCamera) { _camera.SetPreviewDisplay(Holder); _camera.StartPreview(); _shouldInitializeCamera = false; } }
public virtual unsafe void OnPreviewFrame(byte[] p0, global::Android.Hardware.Camera p1) { if (id_onPreviewFrame_arrayBLandroid_hardware_Camera_ == IntPtr.Zero) { id_onPreviewFrame_arrayBLandroid_hardware_Camera_ = JNIEnv.GetMethodID(class_ref, "onPreviewFrame", "([BLandroid/hardware/Camera;)V"); } IntPtr native_p0 = JNIEnv.NewArray(p0); try { JValue *__args = stackalloc JValue [2]; __args [0] = new JValue(native_p0); __args [1] = new JValue(p1); if (GetType() == ThresholdType) { JNIEnv.CallVoidMethod(Handle, id_onPreviewFrame_arrayBLandroid_hardware_Camera_, __args); } else { JNIEnv.CallNonvirtualVoidMethod(Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "onPreviewFrame", "([BLandroid/hardware/Camera;)V"), __args); } } finally { if (p0 != null) { JNIEnv.CopyArray(native_p0, p0); JNIEnv.DeleteLocalRef(native_p0); } } }
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(); } }
protected unsafe AutoFocusManager(global::Android.Hardware.Camera p0) : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer) { if (Handle != IntPtr.Zero) { return; } try { JValue *__args = stackalloc JValue [1]; __args [0] = new JValue(p0); if (GetType() != typeof(AutoFocusManager)) { SetHandle( global::Android.Runtime.JNIEnv.StartCreateInstance(GetType(), "(Landroid/hardware/Camera;)V", __args), JniHandleOwnership.TransferLocalRef); global::Android.Runtime.JNIEnv.FinishCreateInstance(Handle, "(Landroid/hardware/Camera;)V", __args); return; } if (id_ctor_Landroid_hardware_Camera_ == IntPtr.Zero) { id_ctor_Landroid_hardware_Camera_ = JNIEnv.GetMethodID(class_ref, "<init>", "(Landroid/hardware/Camera;)V"); } SetHandle( global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Landroid_hardware_Camera_, __args), JniHandleOwnership.TransferLocalRef); JNIEnv.FinishCreateInstance(Handle, class_ref, id_ctor_Landroid_hardware_Camera_, __args); } finally { } }
void SwitchCameraButtonTapped(object sender, EventArgs e) { if (isLoading) { return; } 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(); } }
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); 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); PrepareAndStartCamera(); }
private void SwitchCameraButtonTapped(object sender, EventArgs e) { cameraType = cameraType == CameraFacing.Front ? CameraFacing.Back : CameraFacing.Front; camera.StopPreview(); camera.Release(); camera = global::Android.Hardware.Camera.Open((int)cameraType); camera.SetPreviewTexture(surfaceTexture); PrepareAndStartCamera(); }
static void n_OnPreviewFrame_arrayBLandroid_hardware_Camera_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1) { global::Com.Moodstocks.Android.Camera.CameraInstance __this = global::Java.Lang.Object.GetObject <global::Com.Moodstocks.Android.Camera.CameraInstance> (jnienv, native__this, JniHandleOwnership.DoNotTransfer); byte[] p0 = (byte[])JNIEnv.GetArray(native_p0, JniHandleOwnership.DoNotTransfer, typeof(byte)); global::Android.Hardware.Camera p1 = global::Java.Lang.Object.GetObject <global::Android.Hardware.Camera> (native_p1, JniHandleOwnership.DoNotTransfer); __this.OnPreviewFrame(p0, p1); if (p0 != null) { JNIEnv.CopyArray(p0, native_p0); } }
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 infoFocusCalibration = global::Android.Hardware.Camera2.CameraCharacteristics.LensInfoFocusDistanceCalibration; var infoSupportHardLevel = global::Android.Hardware.Camera2.CameraCharacteristics.InfoSupportedHardwareLevel; var infoMinimumFocus = global::Android.Hardware.Camera2.CameraCharacteristics.LensPoseRotation; var infoSensorActiveArraySize = global::Android.Hardware.Camera2.CameraCharacteristics.SensorInfoActiveArraySize; //var paramters2 = camera2. var parameters = camera.GetParameters(); parameters.FlashMode = global::Android.Hardware.Camera.Parameters.FlashModeOff; parameters.FocusMode = global::Android.Hardware.Camera.Parameters.FocusModeAuto; camera.SetParameters(parameters); camera.SetPreviewTexture(surfaceTexture); camera.SetDisplayOrientation(100); var max = camera.GetParameters().MaxNumFocusAreas; PrepareAndStartCamera(); camera.StartFaceDetection(); } }
public void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { if (ActivityCompat.CheckSelfPermission(Context, Manifest.Permission.Camera) != (int)Permission.Granted) { // Camera permission has not been granted RequestCameraPermission(); } camera = global::Android.Hardware.Camera.Open((int)cameraType); textureView.LayoutParameters = new FrameLayout.LayoutParams(width, height); surfaceTexture = surface; camera.SetPreviewTexture(surface); PrepareAndStartCamera(); }
private void ReleaseCamera() { try { _camera.StopPreview(); _camera.Release(); _camera.Dispose(); _camera = null; } catch (Exception ex) { Logger.LogWarning("Failed to release camera, probably it is already released", ex); } }
public async void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { // exception handling for the camera permission and won't pass until granted try { var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera); while (status != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera)) { await App.Current.MainPage.DisplayAlert("Camera Permission", "Access to Camera Required", "OK"); while (status != PermissionStatus.Granted) { var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Camera }); status = results[Permission.Camera]; } } else { var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Camera }); status = results[Permission.Camera]; } } if (status == PermissionStatus.Granted) { camera = global::Android.Hardware.Camera.Open((int)cameraType); textureView.LayoutParameters = new FrameLayout.LayoutParams(width, height); surfaceTexture = surface; camera.SetPreviewTexture(surface); PrepareAndStartCamera(); } } catch (Exception) { await App.Current.MainPage.DisplayAlert("Error", "Please Restart App", "OK"); var activity = (Activity)Forms.Context; activity.FinishAffinity(); } }
public async void OnPictureTaken(byte[] data, global::Android.Hardware.Camera camera) { if (data == null) { _safeToTakePicture = true; return; } var bitmap = BitmapFactory.DecodeByteArray(data, 0, data.Length); var ms = await bitmap.CompressAsync(50); var resized = BitmapFactory.DecodeByteArray(ms.ToArray(), 0, ms.ToArray().Length); resized = resized.Rotate(ms); _tcs.SetResult((await resized.CompressAsync(50)).ToArray()); _safeToTakePicture = true; }
private async void TakePhotoButtonTapped(object sender, EventArgs e) { //camera.StopPreview (); //DialogService.ShowLoading ("Capturing Every Pixel"); //var image = textureView.Bitmap; //using (var imageStream = new MemoryStream ()) { // await image.CompressAsync (Bitmap.CompressFormat.Jpeg, 50, imageStream); // image.Recycle (); // imageBytes = imageStream.ToArray (); //} //var navigationPage = new NavigationPage (new DrawMomentPage (imageBytes)) { // BarBackgroundColor = Colors.NavigationBarColor, // BarTextColor = Colors.NavigationBarTextColor //}; //DialogService.HideLoading (); //camera.StartPreview (); //await App.Current.MainPage.Navigation.PushModalAsync (navigationPage, false); //var video = FindViewById<VideoView>(Resource.Id.SampleVideoView); vv.StopPlayback(); string path = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/test.mp4"; camera = global::Android.Hardware.Camera.Open(); camera.SetDisplayOrientation(90); recorder = new MediaRecorder(); camera.Unlock(); recorder.SetCamera(camera); recorder.SetVideoSource(VideoSource.Camera); recorder.SetAudioSource(AudioSource.Mic); recorder.SetOutputFormat(OutputFormat.Default); recorder.SetVideoEncoder(VideoEncoder.Default); recorder.SetAudioEncoder(AudioEncoder.Default); recorder.SetOutputFile(path); recorder.SetPreviewDisplay(vv.Holder.Surface); recorder.Prepare(); recorder.Start(); }
private void OpenCamera() { if (_cameraSurface == null) { _cameraSurface = new CameraSurface(this); _cameraFrameLayout.AddView(_cameraSurface); } if (_camera == null) { // Camera2 API has more capabilities but is more complex to use and not needed for current requirements of Umbella modules #pragma warning disable 0618 _camera = global::Android.Hardware.Camera.Open(); _cameraSurface.OpenCamera(_camera); } else { _camera.StartPreview(); } _ = StartSendingPhotoAsync(); }
public virtual unsafe void OnAutoFocus(bool p0, global::Android.Hardware.Camera p1) { if (id_onAutoFocus_ZLandroid_hardware_Camera_ == IntPtr.Zero) { id_onAutoFocus_ZLandroid_hardware_Camera_ = JNIEnv.GetMethodID(class_ref, "onAutoFocus", "(ZLandroid/hardware/Camera;)V"); } try { JValue *__args = stackalloc JValue [2]; __args [0] = new JValue(p0); __args [1] = new JValue(p1); if (GetType() == ThresholdType) { JNIEnv.CallVoidMethod(Handle, id_onAutoFocus_ZLandroid_hardware_Camera_, __args); } else { JNIEnv.CallNonvirtualVoidMethod(Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "onAutoFocus", "(ZLandroid/hardware/Camera;)V"), __args); } } finally { } }
static void n_OnAutoFocus_ZLandroid_hardware_Camera_(IntPtr jnienv, IntPtr native__this, bool p0, IntPtr native_p1) { global::Com.Moodstocks.Android.Camera.AutoFocusManager __this = global::Java.Lang.Object.GetObject <global::Com.Moodstocks.Android.Camera.AutoFocusManager> (jnienv, native__this, JniHandleOwnership.DoNotTransfer); global::Android.Hardware.Camera p1 = global::Java.Lang.Object.GetObject <global::Android.Hardware.Camera> (native_p1, JniHandleOwnership.DoNotTransfer); __this.OnAutoFocus(p0, p1); }
private async void TakePhotoButtonTapped(object sender, EventArgs e) { var current = CrossConnectivity.Current.IsConnected; // check the internet connection to use the ResDiary API if (!current) { await App.Current.MainPage.DisplayAlert("Connection Error", "Please connect to the internet", "OK"); } else { try { var parameters = camera.GetParameters(); parameters.FlashMode = global::Android.Hardware.Camera.Parameters.FlashModeOff; camera.SetParameters(parameters); camera.StopPreview(); DialogService.ShowLoading("Scanning Logo"); // crop the image into the sqaure in order to make the prediction more accuracy var image = CropImage(textureView.Bitmap); using (var imageStream = new MemoryStream()) { await image.CompressAsync(Bitmap.CompressFormat.Jpeg, 50, imageStream); image.Recycle(); imageBytes = imageStream.ToArray(); } // send the image to CustomVision in form of bytes var results = await CustomVisionService.PredictImageContentsAsync(imageBytes); String resultInString = results.ToString(); if (resultInString.Length > 0) { // if the logo appeared more than 1 result than use the Geolocation if (Geolocation.HasMoreOptions(resultInString)) { DialogService.ShowLoading("More Restaurants Available"); resultInString = await Geolocation.GetCloserOptionAsync(resultInString); } var navigationPage = new NavigationPage(new RestaurantPage(resultInString)); DialogService.HideLoading(); camera.StartPreview(); await App.Current.MainPage.Navigation.PushModalAsync(navigationPage, true); } else { DialogService.HideLoading(); camera.StartPreview(); await App.Current.MainPage.DisplayAlert("Restaurant Not Found", "Please re-scan the Logo", "OK"); } } catch (Exception) { camera.StopPreview(); camera.Release(); camera = global::Android.Hardware.Camera.Open((int)cameraType); camera.SetPreviewTexture(surfaceTexture); PrepareAndStartCamera(); } } }
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 = 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(); } }
private 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(); } }