很多人第一次接觸到DirectX大都是通過游戲,至於安裝、升級DirectX的原因 無非是滿足游戲運行的需要。Direct X其實是微軟公司推出的一個為Windows平台 的多媒體API函數庫,它提供標准接口來與顯卡和聲卡、輸入設備等進行交互。如 果沒有這組標准API函數庫,那你就需要為每一種顯卡、聲卡的每個組合和每種類 型的鍵盤、鼠標和游戲桿編寫不同的代碼。這不又回到了以前的DOS時代。為了解 決這個問題,微軟公司推出了DirectX。DirectX從具體的硬件中抽象出來,並且 將一組通用指令轉換成硬件的具體命令。這樣開發語言通過調用統一標准的 Direct X函數庫就可以操作每一種顯卡、聲卡的每個組合和每種類型的鍵盤、鼠 標和游戲桿等多媒體了。
一.Direct X SDK 9.0安裝及類庫介紹:
.Net FrameWork SDK中並沒有包含Direct X SDK,所以為了順利的完成本文後 面介紹,
必須先下載、安裝Direct X SDK。具體的下載地址為: http://download.microsoft.com/download/a/c/d/acdfb557-266f-4af4-8673- 6ab8009b4ddd/dxsdk_apr2005.exe。此版本是2005四月份推出的英文版。這並不 妨礙下面的程序實現。安裝完Direct X後,就會在存在 "C:\Windows\Microsoft.Net\Managed DirectX"這樣一個目錄,此目 錄中目錄中應該有九個DLL文件和九個XML文件。九個DLL文件大致對應於DirectX 中的十個命名空間。編程中就是使用其中的命名空間來提供對輸入設備、聲音、 網絡播放、圖形等的支持。Direct X SDK 9.0中的定義的命名空間及其主要的作 用具體如表01所示:
命名空間 描述 Microsoft.DirectX 公共類和數學結構 Microsoft.DirectX.Direct3D 3D圖形和助手庫 Microsoft.DirectX.DirectDraw Direct Draw 圖形API。這是舊式命名空間,現在已經不需要使 用它。 Microsoft.DirectX.DirectPlay 用於多玩家游戲的網絡API Microsoft.DirectX.DirectSound 聲音支持 Microsoft.DirectX.DirectInput 輸入設備支持(例如,鼠標和游戲桿) Microsoft.DirectX.AudioVideoPlayback 播放視頻和音頻(例如,在電腦上播放各自視頻動畫文件) Microsoft.DirectX.Diagnostics 疑難解答 Microsoft.DirectX.Security 訪問安全性 Microsoft.DirectX.Security.Permissions 訪問安全權限表01:Direct X SDK9.0中的定義的命名空間及其主要的作用
Direct X內容十分豐富,下文介紹的只是其中的一個小的應用,即用Visual C#調用Direct X中的SDK來播放視頻文件為例子,程序中只使用了命名空間 "Microsoft.DirectX.AudioVideoPlayback"。 Microsoft.DirectX.AudioVideoPlayback命名空間中定義了三個類: "Audio"、"Video"和 "TextureRenderEventArgs"。其中前二個類是最常用的,分別用來支 持音頻和視頻。Microsoft.DirectX.AudioVideoPlayback命名空間中定義的常用 屬性及其具體的作用可參閱表02所示:
屬性 描述 Audio 獲取視頻文件中的音頻對象,可用來後續的音頻播放 Caption 獲取或設置在Form上播放視頻的名稱 CurrentPosition 獲取或設置播放視頻的當前位置 DefaultSize 獲取播放視頻的缺省的視頻大小 Fullscreen 獲取或設置視頻文件是否在全屏模式下播放 IsCursorHidden 獲取播放的視頻時鼠標的狀態:隱藏或顯示 Owner 獲取或設置視頻播放的宿主組件 Paused 獲取當前的播放狀態是否處於暫停狀態 Playing 獲取當前的播放狀態是否處於播放狀態. SeekingCaps 獲取是否可以搜索性能 Size RetrIEves and sets the size of the video for playback. State 獲取當前的播放狀態 Stopped 獲取當前的播放狀態是否處於停止狀態 StopPosition 獲取播放的視頻的停止播放位置表02:Microsoft.DirectX.AudioVideoPlayback命名空間中定義的常用屬性及 其具體的作用
Microsoft.DirectX.AudioVideoPlayback命名空間中定義的常用方法及其具體 的作用可參閱表03所示:
方法 描述 HideCursor 隱藏當前播放視頻的鼠標 Open 裝入新的文件到Video對象中 Pause 設置為暫停播放狀態. Play 設置為播放狀態 SeekCurrentPosition 搜索轉入到制定的播放位置 SeekStopPosition 設置一個新的停止位置 ShowCursor 顯示當前播放視頻的鼠標 Stop 設置為停止播放狀態 Video 初始化一個新的Video實例表03:Microsoft.DirectX.AudioVideoPlayback命名空間中定義的常用屬性及 其具體的作用
了解了以上這些基礎知識後,下面就開始介紹Visual C#調用Direct X播放視 頻文件的具體實現方法。