2015-10-06 37 views
0

我想创建一个简单的应用程序,它将具有打开和关闭Windows媒体设备中闪光灯的功能。 我已经初始化相机如下:控制寡妇媒体设备闪光灯

var devices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture); 

    var rearCamera = devices.FirstOrDefault(item => item.EnclosureLocation != null && 
               item.EnclosureLocation.Panel == Windows.Devices.Enumeration.Panel.Back); 
    if (rearCamera != null) 
    { 
     DeviceName.Content = rearCamera.Name; 
     FlashButton.Visibility = System.Windows.Visibility.Visible; 
     mediaCapture = new MediaCapture(); 

     await mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings 
     { 
      VideoDeviceId = rearCamera.Id 
     }); 

     LowLagPhotoCapture lowLagCaptureMgr = null; 
     // Image properties 
     ImageEncodingProperties imgFormat = ImageEncodingProperties.CreateJpeg(); 

     // Create LowLagPhotoCapture object 
     lowLagCaptureMgr = await mediaCapture.PrepareLowLagPhotoCaptureAsync(imgFormat); 

    } 

而且对我写了下面的代码闪光灯开关:

 var MyVideoDeviceController = mediaCapture.VideoDeviceController; 



     var MyTorch = MyVideoDeviceController.TorchControl; 
     var MyFlash = MyVideoDeviceController.FlashControl; 

     if (MyTorch.Supported) 
     { 
      MyTorch.PowerPercent = 100; 
      MyTorch.Enabled = true; 
     } 
     else 
     { 
      if (MyFlash.Supported) 
      { 
       MyFlash.PowerPercent = 100; 
       MyFlash.Enabled = true; 
      } 
      else 
      { 
       MessageBox.Show("No Flash and Torch Support", "Flash and Torch"); 
      } 
     } 

,但似乎都TorchControl和FlashControl在代码中不支持。我不确定是否也使用正确的API。我想在运动F5M运行此 - 平板电脑

在此先感谢

回答

3

TorchControl用于不断摄像灯,所以如果你正在服用的照片,这是不是最合适的控制使用。其中一个原因是,在许多设备上,视频灯比照片闪光灯暗,但特别是因为在某些设备上,只有在正在进行视频录制时才会开启手电筒。根据设备的功能,这可能会影响拍照的能力。

你有正确的想法设置MyFlash.Enabled = true,但为了安全起见,我还会设置MyFlash.Auto = false,这样闪光灯每次都会闪光,而不仅仅是在黑暗时。

Microsoft GitHub存储库上的CameraManualControls示例演示如何使用Flash和Torch控件等等。不过,它的目标是Windows 10,所以如果你使用的是8.1,则必须修改代码或升级平板电脑。

现在,上述所有内容都假设您运行应用程序的设备首先具有Flash支持。当你说控件不受支持时,这意味着设备上的摄像头驱动程序没有向Windows发布能力。我认为内置的Microsoft Camera应用程序不允许您使用闪光灯?

我看到您的平板电脑制造商在他们的camera specs list上列出了“Illuminator Light”,但有可能通过其专有应用程序控制它的唯一方法。在这种情况下,你必须联系他们寻求支持。

+0

谢谢@Mike,这是非常翔实的。只是供参考,我的意图是保持光源作为火炬。我会尝试你的链接。再次感谢您的信息。保持良好的工作。 –

+0

嗨@Mike,你知道任何可以将设备暴露给Windows的驱动程序吗? –

+0

驱动程序通常不可互换,特别是如果您希望启用某些功能。现在,Microsoft提供了一个通用相机驱动程序,因此您可以尝试恢复到该驱动程序(通过在设备管理器中卸载相机并删除驱动程序软件),或者如果您已经在运行Microsoft驱动程序,则安装由生产厂家。制造商是否提供可以使用闪光灯的应用程序?内置相机中没有闪光灯吗?如果是这样,你应该联系他们要求更好的司机。 – Mike