c# – 移动闪光灯使用xamarin打开但是没有转动,为什么?
发布时间:2020-12-15 21:52:42 所属栏目:百科 来源:网络整理
导读:我的应用程序允许使用闪光灯和相机,但它没有打开.该设备是Nexus三星. 我尝试设置FlashModeOn但它不起作用.请帮我. [Activity(Label = "TurnOnLight",MainLauncher = true,Icon = "@drawable/icon")]public class Activity1 : Activity{ public void initCame
我的应用程序允许使用闪光灯和相机,但它没有打开.该设备是Nexus三星.
我尝试设置FlashModeOn但它不起作用.请帮我. [Activity(Label = "TurnOnLight",MainLauncher = true,Icon = "@drawable/icon")] public class Activity1 : Activity { public void initCamera() { var b = FindViewById<Button>(Resource.Id.MyButton); try { if (!hasCamera) { mcamera = Camera.Open(); hasCamera = true; p=mcamera.GetParameters(); var s = p.Get(Camera.Parameters.FlashModeOn); p.Set(Camera.Parameters.FlashModeTorch,0); mcamera.SetParameters(p); mcamera.StartPreview(); } else { } } catch (Exception exception) { hasCamera = false; } } 解决方法
这是我在ZXing.Net.Mobile项目中使用的代码,它对我来说很好用.请记住,FlashModeOn与FlashModeTorch略有不同:
https://github.com/Redth/ZXing.Net.Mobile/blob/master/src/ZXing.Net.Mobile/MonoForAndroid/ZXingSurfaceView.cs#L227-L267 public void Torch(bool on) { if (!this.Context.PackageManager.HasSystemFeature(PackageManager.FeatureCameraFlash)) { Android.Util.Log.Info("ZXING","Flash not supported on this device"); return; } if (camera == null) { Android.Util.Log.Info("ZXING","NULL Camera"); return; } var p = camera.GetParameters(); var supportedFlashModes = p.SupportedFlashModes; if (supportedFlashModes == null) supportedFlashModes = new List<string>(); var flashMode= string.Empty; if (on) { if (supportedFlashModes.Contains(Android.Hardware.Camera.Parameters.FlashModeTorch)) flashMode = Android.Hardware.Camera.Parameters.FlashModeTorch; else if (supportedFlashModes.Contains(Android.Hardware.Camera.Parameters.FlashModeOn)) flashMode = Android.Hardware.Camera.Parameters.FlashModeOn; } else { if ( supportedFlashModes.Contains(Android.Hardware.Camera.Parameters.FlashModeOff)) flashMode = Android.Hardware.Camera.Parameters.FlashModeOff; } if (!string.IsNullOrEmpty(flashMode)) { p.FlashMode = flashMode; camera.SetParameters(p); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |