CodeGo.net>如何在UWP中显示2个网络摄像机预览?

您好,我在UWP中显示了1个摄像头预览,并成功了.

但是,现在我想在程序中使用2个摄像机的预览,或者在连接2个摄像机的计算机时能够在两个摄像机之间进行选择.

当我运行1个网络摄像头预览时,我提到了使用MediaCapture的documentation,这很好.

但是现在我不知道如何显示2个摄像机预览或如何在两个摄像机之间选择一个.

不可能吗

解决方法:

对的,这是可能的 :-) .当您调用不带参数的InitializeAsync方法时,MediaCapture类将采用默认相机,但是还有另一个重载允许您指定设备ID.

documentation显示了如何发现视频捕获设备:

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

现在,您可以像这样初始化多个MediaCapture实例:

foreach ( var device in devices )
{
   var mediaInitSettings = 
      new MediaCaptureInitializationSettings { VideoDeviceId = device.Id };
   MediaCapture mediaCapture = new MediaCapture();
   mediaCapture.InitializeAsync(mediaInitSettings);

   //do something with the media capture

}

自然,当您想要显示多个预览时,您将需要具有多个CaptureElement,每个CaptureElement都设置为所需的特定MediaCapture实例.

但是,此方法已相当简化.为了确保支持并发捕获和预览,必须首先确保使用文档中所示的MediaCapture.IsVideoProfileSupported方法仅查询支持设备配置文件的摄像机,然后检查查找两个摄像机通用的启用了并发配置文件-MediaCapture. FindConcurrentProfiles,请参阅docs.只有这样,您才能安全地创建两个预览,并且知道该应用程序不会崩溃.

上一篇:c#-在Windows隐私设置中找不到UWP应用


下一篇:我如何访问Windows.Storage命名空间?