如何經過C#開發一個媒體播放器(中)

開發應用程序
  建立經過 PIA Framework 鏈接的 Player 控件實例以後,您能夠向窗體中添加所需的其餘元素,並編寫完成實際操做的代碼。
添加 Windows 窗體控件

   1. View (視圖)菜單中,單擊 Designer 設計 器),或者單擊 Solution Explorer (解決方案資源管理器)中的 View Designer (視圖設計器)按鈕,切換到窗體設計器。

   2. 在窗體上增長文件、播放、信息等菜單。

   3. 在工具箱的 Windows Forms Windows 窗體)面板中,爲您的窗體添加一個工具欄、一個狀態欄和圖片 p_w_picpathList

   4. Properties (屬性)窗口中,將工具欄的名稱更改成 toolBar1 ,將在 Buttons 上增長 4 個按鈕。狀態欄的名稱更改成 statusBar1, 並分別增長三個 Panel

   5. 在工具箱的面板中,爲您的窗體添加一個面版 panel1

   6. 增長一個定時器 timer1

   7. 調整控件在窗體中的排列方式,使之符合您的須要並且方便用戶使用。下圖爲 Visual Studio Designer (設計器)中完成後的窗體佈局。

3

   編寫代碼

  如何打開你想要媒體文件 ?

  第一步是編寫在 frmPlayMedia 中打開 Windows Media 文件的代碼。要自動切換到 Code (代碼)視圖並編輯打開菜單的 Click 事件處理程序 (menuItem2_Click) 的代碼,請雙擊窗體上的 工具欄 按鈕。將如下代碼添加到事件處理程序中:

  還記得嗎 " 文件 -> 打開 ..." 是的幾乎每一個使用 windows 的人都會這樣操做 . 如何實現 ?

  很簡單看看下面的代碼 :
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.wav;*.mp2;*.mp3|All Files|*.*";
if (DialogResult.OK == openFileDialog.ShowDialog())
{
….
}

  看吧很簡單是嗎?記得寫一個函數把它放進去。當你點擊 OK 按鈕的時候, DirectShow 接口就會獲得你想要播放的文件。下圖解釋了它是如何工做的。

   DirectShow 爲多媒體流回放提供最基本的服務,這些多媒體流能夠是本地文件,還能夠是 服務器 傳輸過來的。特別的, DirectShow 能夠支持 視頻 回放,支持以不一樣的文件和流格式壓縮視頻內容,包括 Windows Media MPEG AVI WAV

  在 DirectShow 的核心處,服務是組件的模塊化集合,稱爲過濾器,能夠根據媒體類型排列成過濾器圖。過濾器能夠操做數據流,如讀入、分析、解碼、格式化或渲染。
  • 過濾器以樹型進行排列,這棵樹稱爲過濾器樹,經過過濾器樹管理器(Filter Graph Manager,簡稱FGM)進行管理。使用FGM應用程序能夠經過使用Microsoft Windows Media Player控件間接控制過濾器樹,還能夠經過調用COM接口方法直接控制。DirectShow過濾器樹(參閱圖1)由從源到目標渲染器的有向過濾器序列組成,全部這些經過輸入和輸出過濾器引腳鏈接。過濾器引腳協商它們將支持哪些媒體類型。FGM控制樹過濾器之間的多媒體數據流。由於DirectShow有一個靈活的、可重配置的過濾器樹體系結構,所以DirectShow可使用一樣的軟件成分支持多種媒體類型的回放和分流。開發人員還能夠經過編寫本身的過濾器擴展DirectShow多媒體支持。

      過濾器


      過濾器是註冊的DirectShow類,它執行許多媒體信息處理任務。這些任務包括:


       得到源信息(例如,得到媒體流
    )
       分析(例如,在流上執行包讀入、分離和格式化
    )
       轉換(例如,解碼WMAMPEG-4音頻和視頻
    )
       渲染(例如,在適當的時候產生音頻PCM或者視頻RGB/YUV輸出,將數據傳給DirectSound
    DirectDraw)

      過濾器使用幾種類型的接口,例如引腳、計數器、傳送器和時鐘接口,來執行它們的任務。過濾器實現和開放了許多接口。FGM可使用這些接口建立、鏈接和控制樹。過濾器常常實現包含下列方法的IBaseFilter接口:


       運行、中止和暫停過濾器狀態。

       恢復過濾器和廠商信息。

       獲得和設置參考時鐘。

       恢復過濾器狀態信息。

       枚舉過濾器引線。

       重建過濾器樹時定位引腳


      用戶單擊打開時,這段代碼將顯示一個對話框,供用戶在計算機上瀏覽並選擇要播放的 .wma .wmv 文件。用戶選擇文件(並單擊肯定)時,代碼將 Player URL 屬性設置爲用戶選擇的文件。因爲 Player autoStart 屬性在默認狀況下設置爲 True,因此 Player 當即打開並播放用戶選擇的數字媒體文件。
相關文章
相關標籤/搜索