摘要:
瞭解如何在
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語句必須在全部 Options 語句(本項目中並未使用)以後,而且在全部其餘代碼以前。添加該語句後。