我希望能够使用MediaCapture类显示多个相机设备的预览。 目前,我使用包含设备ID的MediaCaptureInitializationSettings对象初始化MediaCapture。设置对象只接收1个VideoDeviceId,因此我无法为同一MediaCapture对象设置多个视频源。我尝试的另一件事是创建几个MediaCapture对象,每个设备一个。但是,看起来最后一个被初始化的是获得设备访问权限的人,所以即使有多个媒体设备每个都与一个不同的设备相关联,也只允许其中一个设备的视频显示为预览。
以下是代码,以便您可以更好地理解。
async private void PreviewDevice(string deviceId)
{
var mediaCapture = new MediaCapture();
var mediaCaptureSettings = new MediaCaptureInitializationSettings
{
VideoDeviceId = deviceId
};
await mediaCapture.InitializeAsync(mediaCaptureSettings);
var previewElement = new CaptureElement
{
Source = mediaCapture
};
CamerasDisplayGrid.Children.Add(previewElement);
await mediaCapture.StartPreviewAsync();
}
我想要实现的是同时在屏幕上预览多个摄像头。
请指教。提前谢谢
答案 0 :(得分:1)
也许这个链接可以提供帮助:http://social.msdn.microsoft.com/Forums/sr-Cyrl-CS/winappswithcsharp/thread/13d2ce8f-de6d-47c0-8992-4d443a49326f
从理论上讲,从应用程序的角度来看,它也存在硬件限制。
答案 1 :(得分:0)
我遇到了同样的问题,这就是我所做的:
DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
然而,当我以vs 11开始运行应用程序时,它只显示一个活动的摄像头,但是,当我从开始菜单运行它时,它会显示我所有的摄像头。