如何获取可用视频捕获设备列表

时间:2013-10-08 21:35:00

标签: c# c++ .net directshow directshow.net

我正在使用DirectShow.Net创建一个项目,该项目使用Visual C#显示Windows窗体中网络摄像头视图的预览。

我想首先获得一系列可用的视频设备,以便我可以在内置网络摄像头或USB网络摄像头之间进行选择。

我已经看到过几个用C ++完成的例子,例如:在msdn“http://msdn.microsoft.com/en-us/library/windows/desktop/dd377566(v=vs.85).aspx”。

但是由于我不知道任何C ++,我不知道如何将此代码转换为C#。

2 个答案:

答案 0 :(得分:4)

DirectShow.NET示例\Samples\Capture\DxLogo\Capture.cs显示了如何执行此操作:

// Get the collection of video devices
capDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);

您需要的关键字是FilterCategory.VideoInputDevice

另见:

答案 1 :(得分:1)

.netcore解决方案: 安装软件包: DirectShowLib.Standard

然后您可以获取摄像机列表:

var devices = new List<DsDevice>(DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice));
var cameraNames = new List<string>();
foreach (var device in devices)
{
    cameraNames.Add(device.Name);
}