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

摘要: 瞭解如何在 Microsoft Visual C# .NET 中使用 DirectShow 控件,如何開發一個媒體播放器。按照本文介紹的操做步驟,您能夠建立一個簡單 Visual C# 應用程序,用來播放數字音頻和 視頻

  
簡介

   Microsoft Visual C# 是世界上最流行的 編程 語言,利用 Visual C# 的最新版本 Visual C# .NET ,您可以快速、有效地開發基於 Windows 窗體的應用程序,還能夠爲嵌入了 Microsoft Windows Media? Player 9 Series ActiveX 控件的應用程序添加新鮮、有趣而又很是實用的功能。

   DirectShow 控件是一個標準的 ActiveX 控件,提供了大量的功能。 DirectShow 控件提供的功能包括:

   · 數字媒體文件和流媒體的高級播放功能。     

   · 使用播放列表的功能。
   · 播放 DVD CD 的功能。
   · 訪問 Windows Media Player 中的 Media Library (媒體庫)。
   · 處理元數據的功能。
   · 支持字幕。
   · 支持多種語言的音頻。
   · 控制網絡連通性和訪問相關統計信息的功能。

  下面咱們來看看構造這個媒體播放器要達到什麼樣的目標,肯定了目標也就肯定了代碼量和程序的複雜程度。本文的媒體播放器要達到以下目標:

   · 是一個菜單驅動的簡單 AWT 應用。
   · 包含一個 文件 菜單,文件菜單包含三個菜單項:
   · 「 打開 ,用來打開媒體文件。
   · 「 循環 ,是播放一次(默認),仍是重複播放。
   · 「 退出 ,退出程序。
   · 能夠在多種平臺上運行。
   · 核心功能經過 JMF Java Media Framework API 實現。

  按照本文介紹的步驟,您將建立一個基於 Windows 窗體的基本應用程序,並在其中嵌入 Player 控件。您建立的示例應用程序具備以下特色:

   · 建立 DirectShow 控件的一個實例。
   · 利用 Windows Media Player 主互操做程序集提供組件對象模型 (COM) 互操做性。
   · 容許用戶打開並播放 Windows Media 文件,尤爲是文件擴展名爲 .wma .wmv 的文件。
   · 建立供用戶播放、暫停和中止數字媒體內容的傳輸控制按鈕。
   · 顯示當前數字媒體文件的標題。
   · 演示如何使用 Player 對象模型,包括使用屬性、方法和事件的示例。

  個人這個程序僅僅只是告訴你們如何用 DirectShow C# 中作一個播放機 ,

  在這個程序中咱們經要解決的一些小問題 :

   1. 如何從你的磁盤上打開媒體文件

   2. 如何讓工具條上的按鈕起用和禁用

   3. 如何設置狀態欄的顯示文字

   4. 如何控制時間 

   5. 如何使用時間控件的事件
 
   6. 如何用 DirectShow 來播放媒體文件

   7. 如何肯定播放狀態等等 ...

  下圖顯示了您將要建立的應用程序,其中正在播放名爲 「Melow」 的數字音頻文件,同時呈現了可視化效果。

1

   · 本文假設您已經具有必定的 Visual C# Visual Studio.NET 集成開發環境知識。
準備工做

  在開始建立應用程序以前,您須要安裝必要的 軟件 並註冊主互操做程序集 (QuartzTypeLib)

  這裏簡單介紹 DirectShow 接口:

  播放視屏和聲音文件咱們要用到 DiectX 爲咱們提供的 DirectShow 組件 . 使用這個接口可讓你方便的播放那些共用的影像和聲音文件 . 你要作的僅僅只是安裝 DirectShow 接口和使用它的功能函數和配置正確的接口參數而已 .

  不幸的是 .NET 並不正式支持 DirectX. 是的也許你據說 DirectX9 支持是嗎 ? 是的 , 不過在最終版敲定的那一天還沒來 , 咱們都得不到最好的效果 . 但不管如何咱們仍是要用的不是嗎 ? 要不這篇文章得做廢了 . 是的 , 也許你用過 VB, 對了 , 就是它 , 咱們正是要用到那個 .

   開始項目

  在安裝必要軟件並註冊 QuartzTypeLib 以後,您就能夠啓動 Visual C# ,開始爲示例應用程序建立項目。下面我將給你們介紹這一過程的操做步驟。

   建立項目

  按如下步驟建立一個空的項目:
1. 啓動 Visual Studio .NET ,而後單擊 New Project (新建項目)。

   2. Visual C# Projects Visual C# 項目)文件夾中單擊 Windows Application Windows 應用程序),鍵入新項目的名稱(最好爲 DirectShow ),而後單擊 OK (肯定)。

   Visual C# 使用默認的 Windows 窗體 「Form 1」 建立一個新的項目。

   3. 這個名稱並無特別的意義或用處,因此請在 Properties (屬性)窗口中將窗體名稱更改成 frmPlayMedia ,將窗體文本更改成 媒體播放器

  在項目中添加對 DirectShow 的引用

  按照如下步驟在項目中添加一個對 DirectShow 的引用:

   1. 打開 Visual Studio 工具箱,而後單擊 Components (組件)顯示該面板。

   2. 右擊面板,而後單擊 Customize Toolbox (自定義工具箱),顯示 對話框

   3. COM Components COM 組件)選項卡上,選中 Interop.QuartzTypeLib.dll 。(若是 Interop.QuartzTypeLib.dll 因爲某種緣由未列出,則單擊 Browse [ 瀏覽 ] 並查找名爲 QuartzTypeLib.dll 的文件。)

   4. 單擊 OK (肯定)關閉對話框。

2

  要在代碼中使用 DirectShow ,您須要添加一行代碼,以引用 DirectShow 命名空間。在窗體代碼窗口的頂部,將如下代碼添加到全部聲明語句以前:
using QuartzTypeLib;

  using語句必須在全部 Options 語句(本項目中並未使用)以後,而且在全部其餘代碼以前。添加該語句後。
相關文章
相關標籤/搜索