使用 GraphEdit

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

GraphEdit 在 Microsoft Windows 软件开发工具包 (SDK) () https://go.microsoft.com/fwlink/p/?linkid=62332 中提供。

GraphEdit 应用程序的名称为“graphedt.exe”。 安装 SDK 后,“graphedt.exe”位于以下目录中:\Program Files (x86) \Windows Kits\10\bin\<sdk version>\x64\。

在运行 GraphEdit 之前,请使用 regsvr32 实用工具注册位于同一目录中的以下 DLL:

  • proppage.dll
  • evrprop.dll

这些 DLL 使 GraphEdit 能够显示某些内置 DirectShow 筛选器的属性页。

生成文件播放图

GraphEdit 可以生成用于文件播放的筛选器图。 此功能等效于在应用程序中调用 IGraphBuilder::RenderFile 方法。 在“ 文件 ”菜单中,单击“ 呈现媒体文件”。 GraphEdit 显示“ 打开文件 ”对话框。 选择一个多媒体文件,然后单击“ 打开”。 GraphEdit 生成筛选器图以播放所选文件。

还可以呈现位于 URL 的媒体文件。 在“ 文件 ”菜单中,单击“ 呈现 URL”。 GraphEdit 显示一个对话框,可在其中键入 URL。

生成筛选器图

GraphEdit 可以使用系统上注册的任何筛选器生成自定义筛选器图。 在“ 图形 ”菜单中,单击“ 插入筛选器”。 此时将显示一个对话框,其中包含系统上按筛选器类别组织的筛选器列表。 GraphEdit 基于注册表中的信息生成此列表。 下图显示了对话框。

要插入哪些筛选器?

若要向图形添加筛选器,请选择筛选器的名称,然后单击“ 插入筛选器 ”按钮,或双击筛选器名称。 添加筛选器后,可以通过将鼠标从一个筛选器的输出引脚拖动到另一个筛选器的输入引脚来连接两个筛选器。 如果引脚接受连接,GraphEdit 会绘制连接它们的箭头。

连接两个筛选器

运行 Graph

在 Graph 编辑中生成筛选器图后,可以运行该图以查看它是否按预期工作。 “ 图形 ”菜单包含菜单命令 “播放”、“ 暂停”和“ 停止”。 这些命令分别调用 IMediaControl 方法 RunPauseStop。 GraphEdit 工具栏还包含用于以下命令的按钮:

暂停、播放和停止按钮

注意

GraphEdit Stop 命令首先暂停图形,并查找时间零 (假设图形是可查找) 。 对于文件播放,此操作会将视频窗口重置为第一帧。 然后,GraphEdit 调用 IMediaControl::Stop

 

如果图形是可查找的,可以通过拖动工具栏下方显示的滑块条来查找它。 拖动滑块条会调用 IMediaSeeking::SetPositions 方法。

查看属性页

某些筛选器支持自定义属性页,该属性页提供用于设置筛选器属性的用户界面。 若要在 GraphEdit 中查看筛选器的属性页,请右键单击筛选器,然后从弹出窗口中选择“ 属性 ”。 GraphEdit 显示一个属性页,其中包含筛选器 (定义的属性表(如果有任何) )。 此外,GraphEdit 还包括筛选器上每个引脚的属性表。 图钉属性表由 GraphEdit 定义,而不是由筛选器定义。 如果引脚已连接,则引脚属性表将显示连接的媒体类型。 否则,它会列出引脚的首选媒体类型。

注意

若要使用 GraphEdit 的内置属性页,必须注册proppage.dll。 此 DLL 在 Windows SDK 中可用。 DLL 还包含某些 DirectShow 筛选器的其他属性页。 这些属性页仅用于调试目的。

 

使用 GraphEdit 模拟图形生成