directshow.net 示例文件夹(标记为“2010-February”)中的每个示例都可以正常编译,并且那些从文件播放视频的示例效果也很好。但是,每个尝试枚举 FilterCategory.VideoInputDevices 的示例始终无法找到我的任何过滤器,特别是DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
总是返回我没有设备。在使用 directshow.net 的所有其他程序中,我也会遇到同样的问题,例如 touchless 和 codeplex 上的各种示例。
我安装了四个视频输入过滤器(1 个网络摄像头和 3 个屏幕捕获过滤器),它们可以由 Windows SDK 和 rl 过滤器管理器附带的图形编辑器找到/使用。这两个程序都在“视频捕获源”下列出了四个过滤器,每个名字对象都以 directshow.net 的 FilterCategory.VideoInputDevices 指向的正确 GUID(“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 设置 https://stackoverflow.com/questions/4104228/change-target-cpu-settings-in-visual-studio-2010-express
该程序现在成功枚举了我的所有过滤器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)