摘要:了解如何在 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(新建項目)。
本文示例代碼或素材下載