我的应用程序允许使用闪光灯和相机,但它没有打开.该设备是Nexus三星.
我尝试设置FlashModeOn但它不起作用.请帮我.
我尝试设置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略有不同:
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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。