从最新的 Microsoft DirectX SDK 10 中提取的 DirectShow Graph 图表工具,通过这个工具,可以很直观地看到 Filter Graph 的运行及处理流程,方便进行程序调试以及各种音视频处理。
此汉化版本已完美汉化全部资源和字符串。汉化包中提供了两个小工具,请自行选择是否启用(用 RegSvr32.exe 注册后才有效):
PropPage.dll 注册后可以查看属性页。
DirectSpy.dll (已被我破解,无任何限制) 注册后可以查看绝大部分 DirectShow Filter Graph,即使程序没有添加到 ROT。
GraphEdit 是一个用于建立和测试Filter graph 的可视化工具。在DirectX SDK.中附带一个可执行程序版本(在SDK目录中的Bin/DXUtils/graphedt.exe)。你可以快速测试你建立的Filter graph是否达到预期的效果,你也可以查看由另一个程序建立的Filter graph。
查看到系统中安装的Filter:
使用GraphEdit,可以查看到系统中所有(正常)安装的Filter。执行菜单命令Graph | Insert Filters…,将弹出一个如图的对话框。
提 示:Filter的注册信息通常包括两部分——COM服务器信息和Filter描述信息。前者是必需的,它表明了Filter是一个COM组件;后者不是 必需的,不注册也不会妨碍到Filter功能的实现。GraphEdit查看不到没有注册Filter描述信息的Filter。
通常在开发 DirectShow应用程序时,注册在“DirectShow Filters”目录下的Filter可以通过指定其CLSID、调用API函数CoCreateInstance来创建。而注册在其他目录(比如 “Audio Capture Sources”、“Audio Compressors”、“Video Capture Sources”、“Video Compressors”等)下的Filter,需要通过系统枚举来创建。
构建指定文件播放用的Filter Graph
使用GraphEdit,还可以播放媒体文件。构建指定文件播放用的Filter Graph至少有以下4种方法:
(1)执行菜单命令File | Render Media File…,在随后弹出的对话框中选择一个媒体文件。
(2)在文件浏览器中直接将要播放的媒体文件拖到GraphEdit中。
(3) 执行菜单命令Graph | Insert Filters…,在“DirectShow Filters”目录下找到“File Source (Async.)”这个Filter并双击插入,在随后弹出的对话框中选择一个媒体文件,然后再在Source Filter的输出Pin上执行鼠标右键菜单项“Render Pin”。
(4)与方法(3)类似,预先插入所有需要的Filter;连接时,在 上一级Filter的输出Pin上按下鼠标左键并按住不放,拖动鼠标到下一级Filter的输入Pin上后放开;这样依次连接所有必要的Pin即可。(连 接的顺序一般总是从左到右,即从Source Filter连到Renderer Filter。)
构建的Filter Graph典型如图。
当Filter Graph构建完成后,就可以进行播放了。执行菜单命令Graph | Play或Pause或Stop;或者直接使用工具条上的播放控制按钮。
用GraphEdit显示应用程序中构建的Filter Graph
GraphEdit的这个远程连接功能仅在Windows 2000和Windows XP操作系统下能用。