我正在使用 DirectShow.Net 创建一个项目,该项目使用 Visual C# 在 Windows 窗体中显示网络摄像头视图的预览。
我想从获得可用视频设备的集合开始,这样我就可以在内置网络摄像头或 USB 网络摄像头之间进行选择。
我已经看到几个用 C++ 完成的例子,例如在 msdn“http://msdn.microsoft.com/en-us/library/windows/desktop/dd377566(v=vs.85).aspx”。
然而,由于我不懂任何 C++,我不知道如何将此代码转换为 C#。
DirectShow.NET 示例
\Samples\Capture\DxLogo\Capture.cs
展示了如何做:
// Get the collection of video devices
capDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
您需要的关键字是
FilterCategory.VideoInputDevice
.
另见:
.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);
}