我正在编写一个应用程序来处理网络摄像头。我必须使用(这是一个外部约束)avicap32.dll 库。所以我在这里,使用这个库中的一些外部函数(我必须编组类型),以及 user32(发送 WindowsMessages)。我挖了一半的互联网,但找不到如何获取所有连接的网络摄像头设备的列表?
当然,我完全了解功能:
[DllImport(avicap32dll)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool capGetDriverDescription(
short driverIndex,
StringBuilder name, int nameSize,
StringBuilder version, int versionSize);
,但它给了我驱动程序列表,而不是凸轮!当我将两台相机连接到我的电脑时,我仍然可以通过此功能找到一个捕获驱动程序(检查 driverIndex 从 0 到 9)。它们都必须使用相同的捕获驱动程序。因此,如果没有网络摄像头列表,我无法真正决定要连接到哪个网络摄像头。有一个 WindowsMessage WM_CAP_DLG_VIDEOSOURCE,但在我连接网络摄像头之前它不显示视频源对话框。