從最新的 Microsoft DirectX SDK 10 中提取的 DirectShow Graph 圖表工具,通過這個工具,可以很直觀地看到 Filter Graph 的運行及處理流程,方便進(jìn)行程序調(diào)試以及各種音視頻處理。
此漢化版本已完美漢化全部資源和字符串。漢化包中提供了兩個小工具,請自行選擇是否啟用(用 RegSvr32.exe 注冊后才有效):
PropPage.dll 注冊后可以查看屬性頁。
DirectSpy.dll (已被我破解,無任何限制) 注冊后可以查看絕大部分 DirectShow Filter Graph,即使程序沒有添加到 ROT。
GraphEdit 是一個用于建立和測試Filter graph 的可視化工具。在DirectX SDK.中附帶一個可執(zhí)行程序版本(在SDK目錄中的Bin/DXUtils/graphedt.exe)。你可以快速測試你建立的Filter graph是否達(dá)到預(yù)期的效果,你也可以查看由另一個程序建立的Filter graph。
查看到系統(tǒng)中安裝的Filter:
使用GraphEdit,可以查看到系統(tǒng)中所有(正常)安裝的Filter。執(zhí)行菜單命令Graph | Insert Filters…,將彈出一個如圖的對話框。
提 示:Filter的注冊信息通常包括兩部分——COM服務(wù)器信息和Filter描述信息。前者是必需的,它表明了Filter是一個COM組件;后者不是 必需的,不注冊也不會妨礙到Filter功能的實現(xiàn)。GraphEdit查看不到?jīng)]有注冊Filter描述信息的Filter。
通常在開發(fā) DirectShow應(yīng)用程序時,注冊在“DirectShow Filters”目錄下的Filter可以通過指定其CLSID、調(diào)用API函數(shù)CoCreateInstance來創(chuàng)建。而注冊在其他目錄(比如 “Audio Capture Sources”、“Audio Compressors”、“Video Capture Sources”、“Video Compressors”等)下的Filter,需要通過系統(tǒng)枚舉來創(chuàng)建。
構(gòu)建指定文件播放用的Filter Graph
使用GraphEdit,還可以播放媒體文件。構(gòu)建指定文件播放用的Filter Graph至少有以下4種方法:
(1)執(zhí)行菜單命令File | Render Media File…,在隨后彈出的對話框中選擇一個媒體文件。
(2)在文件瀏覽器中直接將要播放的媒體文件拖到GraphEdit中。
(3) 執(zhí)行菜單命令Graph | Insert Filters…,在“DirectShow Filters”目錄下找到“File Source (Async.)”這個Filter并雙擊插入,在隨后彈出的對話框中選擇一個媒體文件,然后再在Source Filter的輸出Pin上執(zhí)行鼠標(biāo)右鍵菜單項“Render Pin”。
(4)與方法(3)類似,預(yù)先插入所有需要的Filter;連接時,在 上一級Filter的輸出Pin上按下鼠標(biāo)左鍵并按住不放,拖動鼠標(biāo)到下一級Filter的輸入Pin上后放開;這樣依次連接所有必要的Pin即可。(連 接的順序一般總是從左到右,即從Source Filter連到Renderer Filter。)
構(gòu)建的Filter Graph典型如圖。
當(dāng)Filter Graph構(gòu)建完成后,就可以進(jìn)行播放了。執(zhí)行菜單命令Graph | Play或Pause或Stop;或者直接使用工具條上的播放控制按鈕。
用GraphEdit顯示應(yīng)用程序中構(gòu)建的Filter Graph
GraphEdit的這個遠(yuǎn)程連接功能僅在Windows 2000和Windows XP操作系統(tǒng)下能用。