directshow.net视频输入设备过滤器枚举是否损坏(在较新的环境中)



directshow.net samples文件夹(标记为"2010-February")中的每个示例都编译得很好,那些从文件中播放视频的示例工作得很好。但是,每个尝试枚举FilterCategory的示例。VideoInputDevices总是找不到我的任何过滤器,特别是DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);总是返回我没有设备。同样的问题在我使用directshow.net的所有其他程序中都会出现,比如touchless和codeplex上的各种示例。

我已经安装了四个视频输入过滤器(1个网络摄像头和3个屏幕捕捉过滤器),它们被Windows SDK和rl过滤器管理器附带的图形编辑器发现/使用。两个程序都在"视频捕获源"下列出了四个过滤器,每个绰号都以directshow.net的FilterCategory的正确GUID开始。VideoInputDevices指向("860BB310-5D01-11D0-BD3B-00A0C911CE86")。

我已经尝试编译和使用最新的directshow.net dll自己,但没有任何改变。

包装器可以得到视频渲染过滤器很好,但不能枚举视频捕获的原因是什么?我在win7 sp1, 64位,使用visual c# 2010 express。是我周围的环境造成的吗?如果我知道是什么原因造成的,我很乐意自己处理这个变化。

感谢您的宝贵时间。

我将GetDevicesOfCat的代码复制到我的项目中,并开始调试它。如果我交给它除VideoInputDevice以外的任何FilterCategory,它会得到GraphEdit列出的大多数过滤器,但它仍然缺少大多数类别中的一些。我猜有一些过滤器的属性使得它们在我编译的GetDevicesOfCat版本中不可用。

事实证明,只需将我的平台目标切换到x86就可以了,尽管在VS2010 Express中不那么直接(对于新安装,在执行第一个之前,您必须遵循第二个答案):在Visual Studio 2010 Express中更改目标CPU设置

程序现在成功枚举了我所有的过滤器

最新更新