控制xamain.forms中闪光灯的强度

时间:2016-05-03 07:19:45

标签: c# visual-studio xamarin xamarin.android xamarin.forms

我是xamarin表格的新手。现在正在开发一个制作火炬的示例应用程序。我得到了闪光灯开/关的功能。 https://github.com/kphillpotts/Xamarin.Plugins/tree/master/Lamp。但我喜欢控制闪光灯的强度。我试图使用本机代码但未能成功。我搜索谷歌但无法找到它。我有什么方法可以实现它。

提前谢谢

1 个答案:

答案 0 :(得分:1)

我不知道实现它的插件。但是你可以轻松扩展灯泡插件。

您可以扩展接口ILamp,如

public interface ILamp
{
    ///....
    void TurnOn(float intensity);
}

然后通过复制TurnOn功能

来实现它

<强>的iOS

public void TurnOn(float intensity)
{
    var captureDevice = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Video);
    if (captureDevice == null)
    {
      Debug.WriteLine("No captureDevice - this won't work on the simulator, try a physical device");
      return;
    }

    NSError error = null;
    captureDevice.LockForConfiguration(out error);
    if (error != null)
    {
      Debug.WriteLine(error);
      captureDevice.UnlockForConfiguration();
      return;
    }
    else
    {
      if (captureDevice.TorchMode != AVCaptureTorchMode.On)
      {
        captureDevice.TorchMode = AVCaptureTorchMode.On;
        NSError err;
        captureDevice.SetTorchModeLevel(intensity, out err); // add this line
      }
      captureDevice.UnlockForConfiguration();
    }
}

在Android上我不确定是否有API来控制它。我找不到一个。如果有的话,就像在iOS上一样继续。

如果平台没有API,请执行TurnOn(float intensity)之类的

public void TurnOn(float intensity)
{
    TurnOn();       
}