全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3680
推到 Plurk!
推到 Facebook!

以 DELPHI 開發 DIRECT SHOW 簡介

 
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-05 12:40:45 IP:61.218.xxx.xxx 未訂閱
在這裡你將得到 DirectShow 術語的迅速的概觀,和以Delphi編碼 的 DirectShow基本開始。
DirectShow 使用元件稱為”過濾器 (filters)”連同一個叫做”梢 (pins)”的連接器一起鉤住進入一個稱為”graph”的結構之內的.
以 DirectX SDK 的 GraphEdit.exe 很容易顯示告訴你 DirectShow 的元素是如何結合使用:
GraphEdit.exe 是 DirectX SDK 所提供的工具 在MPG 檔案上面的graph:
  • 藉著一個輸入過濾器讀取
  • 傳給一個分離聲音和視訊的流過濾器
  • 聲音和視訊解碼
  • Rendering 過濾輸出聲音和視訊
藉由載入一個媒體檔案使用File | Open Graph and having 功能置能過濾器的正確選擇和配置自動地發生.
你可以執行 MPG 檔案藉由按”撥放 play”按鈕或選擇菜單Graph | Play
你不僅僅可以演奏stock 檔案。
你可以增加並且連接過濾器允許任何的配置的附加的過濾器。
每個過濾器知道該如何查詢另一個過濾以便有效的連接製造。
舉例來說我們可以載入一個wave sound檔案到graph,然後插入一些效果類型的過濾器(flanging, compression, echo, etc 等等).
很棒 的事關於GraphEdit 應用程式是它允許你不需要發展而且測試你的graph 編碼;
如果它在 GraphEdit 中無法動作,當你試著創造graph 程式的時候 , 它也將無法工做。
也就是說 你可以先在 GraphEdit 做測試,若沒問題在寫程式

嘗試載入一個wave波檔案 . (我們正在使用 Windows XP startup wave)以便我們可以操縱它:


你可以上 menu option (Graph | Insert Filters) 插入已經在你系統上實際有效地過濾器
一些過濾器在你的系統上存在,其它是 像是DVD的安裝期間被增加的檢視軟體或捕獲驅動程式:


從DMO 聲音效果 (Direct Media Objects)選擇”回聲 Echo” 及按下Insert Filter按鈕。



re-route經過回聲剖析wave資料在到 DirectSound 裝置之上playback:

  1. 從Wave Parser filte選擇輸出箭號及按刪除鍵
  2. 選擇並且拖曳Wave Parser 輸出pin到回聲輸入pin。
  3. 選擇並且拖曳回聲輸出到 DirectSound 裝置輸入。
你的graph 應該像下面例子一樣。
按play撥放按鈕及啟始wave因為回聲所以應該聽起來些微夢幻:



GraphEdit 工具是棒的發展/除錯工具並且是有趣的但是到現在為止只得到你。
最後你想要把 DirectShow 整合到你的應用程式。
你將需要的:

  • 從 great folks at Project Jedi 可得DirectX header files
    http:// www.delphi-jedi.org/ , 點一下Delphi 圖形聯結。
    要注意到那 DirectShow9.pas 檔案將參考其他的units:
    D3D9 , DirectDraw , DirectSound 和 DXCommon.pas -
    注意:
    在這寫作的時候﹐ DirectX 9 是最近的。
  • DirectX 9.0 SDK 下載 http://msdn.microsoft.com/directx 及 follow the navigation prompts.
  • 對於該如何編碼事物的一些含糊的線索。
    你可以翻譯 SDK C 範例 的或你可以在下面使用範例。
    提示:
    下面的範例是比較容易的。

你只需要二個介面:
IGraphBuilder 和 IMediaControl。
The real heavy lifting is done by the IGraphBuilder that gets the most appropriate filters and hooks all the correct pins together for you.

下面的代碼片斷是除去的大部分範例。
實例顯示一個單獨的視窗的MPEG和沒有停止,快速的前進或轉回的。
明確地one-trick pony , 但是pony將讓你到達 DirectShow 開動閘:




Now that wasn't too painful. The next step will be to wrest control of the individual filters away from IGraphBuilder and to hook them up ourselves. Until then you may want to peruse the SDK examples for additional ideas of what DirectShow can do for you.
Copyright 2000,2002 All Rights Reserved.
support@kazoosoft.com
發表人 - cmf 於 2003/08/05 12:46:53
------
︿︿
系統時間:2024-05-09 10:15:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!