1

是否可以在不使用 TSysDevEnum.GetMoniker(...) 的情况下创建/初始化具有已知视频捕获源的 TFilter 对象?

Video Capture Source 的名称和其他详细信息是已知的,可以通过 GraphEdit Filter Browser 获取。目的是加快 TFilter 的初始化并以编程方式将其附加到 FilterGraph。

4

1 回答 1

1

不,您需要通过 moniker 来完成。它取决于支持视频源过滤器的实际 COM 类,但几乎总是没有唯一的CLSID,并且不可能不通过名字对象来实例化它。

如果您有 moniker 显示名称,您可以使用MkParseDisplayName绕过枚举快速获取 IMoniker。或者,您可以列举并将名字对象的显示名称与您已经拥有的名称进行比较。

要选择音频或视频捕获设备,请使用系统设备枚举器,如主题使用系统设备枚举器中所述。System Device Enumerator 返回设备名字对象的集合,按设备类别选择。名字对象是一个 COM 对象,其中包含有关另一个对象的信息。名字对象使应用程序无需实际创建对象即可获取有关对象的信息。

于 2012-10-02T18:27:12.563 回答