我正在使用DirectShow.Net创建一个项目,该项目使用Visual C#显示Windows窗体中网络摄像头视图的预览。
我想首先获得一系列可用的视频设备,以便我可以在内置网络摄像头或USB网络摄像头之间进行选择。
我已经看到过几个用C ++完成的例子,例如:在msdn“http://msdn.microsoft.com/en-us/library/windows/desktop/dd377566(v=vs.85).aspx”。
但是由于我不知道任何C ++,我不知道如何将此代码转换为C#。
答案 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);
}