如何检测是在Windows 10通用应用程序中使用isTypePresent可用的相机

在开发适用于Windows 10的通用应用程序时,build议使用IsTypePresent检测设备特定的硬件。 (微软把这个function称为“ 点亮 ”)。 检查设备后退button的文档示例是:

if(Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;

这里很清楚,string"Windows.Phone.UI.Input.HardwareButtons"作为parameter passing给IsTypePresent()方法。

我想知道是否有一个简单的方法来识别其他string,我可以用于其他硬件,特别是相机。

IsTypePresent不用于检测硬件存在,而是用于检测API的存在。 在你的代码片段中,它检查是否存在要调用的应用程序的HardwareButtons类,而不是如果设备具有硬件按钮(在这种情况下,它们可能会一起,但这不是IsTypePresent正在寻找的)。

与相机一起使用的MediaCapture类是通用API合约的一部分,因此始终存在且可调用。 如果没有合适的音频或视频设备,初始化将失败。

要找到硬件设备,您可以使用Windows.Devices.Enumeration命名空间。 以下是查询相机的快速代码片段,并找到第一个相机的ID。

 var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(Windows.Devices.Enumeration.DeviceClass.VideoCapture); if (devices.Count < 1) { // There is no camera. Real code should do something smart here. return; } // Default to the first device we found // We could look at properties like EnclosureLocation or Name // if we wanted a specific camera string deviceID = devices[0].Id; // Go do something with that device, like start capturing!