我如何在 uwp C# 中创建手电筒应用程序

How can i create Flashlight app in uwp C#

我有 Lumia 830,我尝试在 UWP C# 中创建手电筒应用程序。我的设备手电筒很好用,但我不知道为什么我无法创建自己的应用程序来打开/关闭 phone 的手电筒。 我使用 Lamp class :

var lamp = await Lamp.GetDefaultAsync();

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

当 运行 我的 phone "lamp" 上的这段代码为空时,它找不到我的 FlashLED。我从 MSDN.Microsoft.com 那里得到了这段代码,他们说

If the returned object is null, the Lamp API is unsupported on the device. Some devices may not support the Lamp API even if there is a lamp physically present on the device.

这个 class 在我的 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 卡内存。 如果您知道打开 on/off 手电筒或 FlashLED 的最佳方法,请帮助我。 提前致谢 侯赛因·哈比比·朱巴里

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

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

发件人: https://wpdev.uservoice.com/forums/110705/suggestions/15846967