如何在uwp C#中创建Flashlight应用程序

时间:2016-04-25 16:02:23

标签: c# windows camera win-universal-app flashlight

我有Lumia 830并且我试图在UWP C#中创建手电筒应用程序。我的设备手电筒工作得很好,但我不知道为什么我不能创建我自己的应用程序打开/关闭我的手机火炬。 我用Lamp class:

var lamp = await Lamp.GetDefaultAsync();

if (lamp == null)
{
    ShowErrorMessage("No Lamp device found");
    return;
}
lamp.IsEnabled = true;

在我的手机上运行此代码"指示灯"为空,它无法找到我的FlashLED。我从MSDN.Microsoft.com获得了此代码,并且说了

  

如果返回的对象为null,则不支持Lamp API   设备。有些设备可能不支持Lamp API,即使有   实际存在于设备上的灯。

这个课程对我的Lumia 830不起作用我不知道为什么? :(

我也使用这段代码:

var mediaDev = new MediaCapture();
await mediaDev.InitializeAsync();
var videoDev = mediaDev.VideoDeviceController;

var tc = videoDev.TorchControl;
if (tc.Supported)
{
// But wait, for this to work with Blue camera drivers, we have to Start a recording session
// Create video encoding profile as MP4 
var videoEncodingProperties = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Vga);

// Start Video Recording
var videoStorageFile = await KnownFolders.VideosLibrary.CreateFileAsync("tempVideo.mp4", CreationCollisionOption.GenerateUniqueName);
                await mediaDev.StartRecordToStorageFileAsync(videoEncodingProperties, videoStorageFile);

// Turn on Torch                 
mediaDev.VideoDeviceController.TorchControl.Enabled = true;
}

此代码有效,我的FlashLED开启,但它录制了视频,并占用了用户SD卡内存。 如果您知道有最好的方式打开/关闭Torch或FlashLED,请帮助我。 提前致谢 Hussein Habibi Juybari

2 个答案:

答案 0 :(得分:1)

Lamp API仅适用于Windows 10设备,您只能在支持API的设备上使用它。目前支持的设备为950 / 950XL,650和550.旧设备不会更新以支持此API。当您检测到旧设备上的灯泡设备不可用时,您应该回到打开闪存的Windows 8.1方法。

来自: https://wpdev.uservoice.com/forums/110705/suggestions/15846967

答案 1 :(得分:0)

请测试名为LampDevice的默认样本(参见https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/LampDevice)。你有同样的行为吗?我刚刚在Lumia 930上测试过它工作正常。没有Lumia 830来测试它。