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

问题描述 投票:0回答:2

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

我想从获得可用视频设备的集合开始,这样我就可以在内置网络摄像头或 USB 网络摄像头之间进行选择。

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

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

c# c++ .net directshow directshow.net
2个回答
8
投票

DirectShow.NET 示例

\Samples\Capture\DxLogo\Capture.cs
展示了如何做:

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

您需要的关键字是

FilterCategory.VideoInputDevice
.

另见:


5
投票

.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);
}
© www.soinside.com 2019 - 2024. All rights reserved.