Media Player SDK

來源:互聯網
上載者:User
摘要:瞭解如何更改 Windows Media Player 的外觀和行為,如何將其嵌入基於 Web 或基於 Windows 的應用程式,以及如何使用外掛程式對象擴充其功能。本文介紹了 Windows Media Player 軟體開發套件 (SDK) 並描述了這些功能的用法。

  簡介

  Microsoft  Windows Media Player 為數字音頻和視頻提供了出色的播放效果,但您的業務可能需要顯示更多資訊,或者需要修改視頻或音頻內容的播放方式。使用 Windows Media Player 軟體開發套件 (SDK)(代號為“Corona”),您可以擴充獨立 Player 的功能,並將播放功能嵌入到自己的應用程式中。本文對 SDK 進行了進階概述,涉及如下所述的三個主要功能;本文適用於決策者以及初次接觸數位媒體編程的程式員。

  可以將 Player 嵌入 Web 應用程式或基於 Microsoft Windows? 的應用程式中。Windows Media Player 具有模組化體繫結構,使您可以只使用所需的部分。尤其是,使用者介面與音頻和視頻內容的播放功能相互獨立。您可以使用其播放功能,並可決定在應用程式中是使用 Player 的現有使用者介面,還是建立自己的使用者介面。

  Windows Media Player 提供了外觀功能,您可以使用該功能建立個人化的 Player 外觀,也可以基於 Player 建立截然不同的功能。

  還可以建立外掛程式來擴充 Player 的主要功能,方法是向使用者介面添加新的互動式控制項,在 Player 呈現音頻或視頻資料前對其進行修改,然後在 Windows Media 檔案中呈現非標準資料流。

  本文包括以下主題:

  1、建立 Player 應用程式。介紹如何在 Web 或基於 Windows 的應用程式中嵌入 Windows Media Player 功能。

  2、建立外觀。介紹外觀功能:更改 Windows Media Player 的外觀和行為。

  3、建立外掛程式。介紹修改 Windows Media Player 外觀和行為的外掛程式。其中包括呈現專有內容、修改音頻或視頻播放以及通過互動式控制項提供全新的功能。

  建立 Player 應用程式

  Windows Media Player 包括用於呈現視頻和音訊 Microsoft ActiveX? 控制項。該控制項可在任何運行 Windows Media Player 的電腦上獲得。Windows Media Player 是一種獨立的技術,此外,它還包括一個 ActiveX 控制項形式的元件物件模型 (COM) 伺服器(Player 與 ActiveX 控制項之間的關係相當於 Microsoft Internet Explorer 與其所提供的 WebBrowser ActiveX 控制項之間的關係)。

  有兩種方法可用於建立使用 Windows Media Player ActiveX 控制項的應用程式。您可以在 Web 應用程式中使用該控制項,也可以在基於 Windows 的應用程式中使用它。

  要在 Web 應用程式中使用 Windows Media Player,應在頁面的超文字標記語言 (HTML) (HTML) 中包含一個 OBJECT 元素。並在 OBJECT 元素中包含嵌套的 PARAM 元素,以指定 Windows Media Player ActiveX 控制項是否可見、包含哪些操作按鈕以及該控制項的其他屬性。通過包含多個 OBJECT 元素,可在一個 Web 頁面中包含多個控制項。要完全控制嵌入的 Player,可以在頁面的 HTML 中編寫指令碼代碼。

  要在基於 Windows 的應用程式中使用 Windows Media Player,可以包含一個對服務於該控制項的動態連結程式庫 (DLL) 的引用。例如,在 Microsoft Visual Basic? 中,使用 Components(組件)對話方塊設定一個對“Windows Media Player”(這是 Wmp.DLL 檔案中庫的助記名稱)的引用。

  如何設定控制項屬性取決於所用的編程環境。例如,在 Visual Basic 中,使用自訂 Properties(屬性)對話方塊在設計時設定屬性。也可以通過編寫代碼設定或讀取屬性以及在運行時調用方法。

  終端使用者可在任何安裝了 Windows Media Player 的基於 Windows 的電腦上運行該應用程式。他們可以通過已經熟悉(或由您建立)的使用者介面收聽音頻或觀看視頻。

  企業程式員可以簡單地使用 Player 提供的播放功能,並將精力集中在應用程式的特定業務需要上。
建立外觀

  您可以使用 Windows Media Player 中的外觀技術更改 Player 的外觀,同時保持它的標準行為。Player 包含的外觀便是該功能的體現。儘管這些外觀使 Player 看起來迥然不同,但它們卻都保留了 Play(播放)和 Pause(暫停)按鈕、顯示播放清單、返回到完整模式等準系統。

  您還可以使用外觀技術建立一個外觀和行為與標準 Player 相差很大的應用程式。您可以隨意在外觀中添加各種各樣的控制項,使其執行自訂動作。要定義自訂動作,可以編寫 JScript? 代碼;您無需精通 Microsoft Visual C++? 或 Visual Basic 即可將外觀技術用作編程平台。

  您可以將外觀定義檔案、影像檔和任何 Jscript 檔案壓縮到副檔名為 .wmz 的單個檔案中。這是將外觀提供給終端使用者的標準方法。

  您還可以建立稱作邊框的特殊外觀,它顯示在完整模式下的 Windows Media Player 的 Now Playing(現正播放)功能中。您可以將邊框、播放清單檔案和數位媒體檔案壓縮到副檔名為 .wmd 的單個可下載檔案中。當終端使用者單擊 .wmd 檔案的連結時,Windows Media Player 將對包含的所有檔案進行解壓縮,將邊框應用到 Now Playing(現正播放)功能,然後開始播放在播放清單檔案中指定的內容。

  這種可下載檔案功能尤其適用於向終端使用者提供出色的娛樂或教育內容。它不要求終端使用者進行任何安裝,同時允許您進行廣泛的自訂。

  建立外掛程式

  Windows Media Player SDK 包含支援廣泛擴充性的介面。要擴充 Player 的準系統,可以編寫藉助於 DLL 檔案的 COM 物件。

  SDK 包含一個可建立樣本外掛程式項目的 Visual C++ 嚮導。該項目包含編譯和註冊外掛程式所需的代碼和一個樣本實現。運行嚮導後,您便可以將編程工作的重點放在實現外掛程式所需的特定代碼上。

  利用外掛程式提供的擴充性,您可以將 Windows Media Player 用作提供和運算元字媒體內容的平台。外掛程式有幾種不同的類型,將在以下主題中進行討論。

  視覺效果外掛程式

  當 Player 處於完整模式或面板模式(取決於外觀)時,視覺效果外掛程式可在只播放音頻內容時,向 Player 的 Now Playing(現正播放)功能添加有趣的生動影像。視覺效果的外觀和動態運動基於現正播放的音樂並與之同步。

  將視覺效果作為 COM 物件實現。Player 每秒多次為當前選定的視覺效果引發事件。該事件包含以下資料:

  1、TimedLevel 結構,其中包括當前音訊頻率和音量資訊

  2、裝置上下文控制代碼,用於指定繪圖面

  3、RECT 結構,定義繪圖面的大小

  在視覺效果對象中,實現處理此事件的 Render 方法。

  可以使用 Windows 圖形裝置介面 (GDI) 功能、Microsoft Direct3D? 或 DirectDraw? 功能等技術對圖形進行可視化編程。

  在調用那些利用裝置上下文的 GDI 函數時,Windows Media Player 外掛程式嚮導產生的樣本實現使用音頻和音量資料(位於 TimedLevel 結構中)。可以修改或替換該實現,以產生所需的視覺效果。

  該嚮導可以編寫用於編譯自行註冊的 COM DLL 的全部代碼。要看到視覺效果,只需編譯項目,然後運行 Windows Media Player 並選擇新的視覺效果即可。

  使用者介面外掛程式

  Windows Media Player 為終端使用者提供了各種資訊和功能。但是,您可能需要提供自訂互動或自訂資料。使用使用者介面外掛程式可完成此項工作。

  Windows Media Player 的完整模式由許多地區組成,如 Now Playing(現正播放)功能和播放清單窗格。某些地區在預設狀態下不可見,但終端使用者可將其顯示為可見。這些地區包括顯示在 Now Playing(現正播放)功能底部的設定地區,以及顯示在播放清單上方的中繼資料地區。

  使用者介面外掛程式分五種類型。其中三種類型顯示在 Player 的不同地區中。在每個地區中,每次只能啟用一個外掛程式。

  1、顯示外掛程式。這些外掛程式佔據 Now Playing(現正播放)功能中的視覺效果顯示地區。由於該地區通常很大,因此比較適合顯示大量資料或複雜的互動控制項集。

  2、設定外掛程式。這些外掛程式位於 Now Playing(現正播放)功能中視覺效果顯示地區的下面。該地區包含圖形均衡器、視頻設定和其他用於配置播放或 Windows Media Player 外觀的控制項。設定外掛程式比較適合添加相似的自訂功能,並使終端使用者能夠配置 Player 的外觀或行為。

  3、中繼資料外掛程式。這些外掛程式位於播放清單上方的一個小地區。它們比較適合顯示曲目、唱片集或播放清單的確切資訊,同時也適用於簡單控制項或超連結。例如,Windows Media Player 包含一個中繼資料外掛程式,它顯示的封面圖形是一個指向有關當前播放的唱片集和音樂家的更多資訊的連結。

  有兩類使用者介面外掛程式在 Windows Media Player 視窗中不顯示。

  1、視窗外掛程式。這些外掛程式佔用一個單獨的視窗。它們比較適合顯示資訊或向終端使用者提供從 Now Playing(現正播放)功能切換到其他功能或載入其他外掛程式時始終存在的互動操作。

  2、背景外掛程式。這些外掛程式沒有圖形介面(除非像對待任何外掛程式那樣,為它們提供屬性頁面)。它們比較適合不要求終端使用者進行輸入的自動服務。

  Windows Media Player 外掛程式嚮導可以為每種類型的使用者介面外掛程式建立樣本實現。您可以修改實現細節,以提供所需功能,編譯項目,然後使用 Player 測試外掛程式。該嚮導包括編譯自行註冊的 COM DLL 所需的所有代碼,因而您可以在編碼時將重點放在特殊需要上。

  DSP 外掛程式

  數字訊號處理 (DSP) 外掛程式在播放過程中修改數位媒體流。使用 DSP 外掛程式,可以將彩色視頻更改為黑白視頻,或使用反色使映像看起來像底片。還可在音頻中添加顫音或回聲效果。外掛程式在處理數位媒體內容時將改變該內容的播放。DSP 外掛程式與視覺效果外掛程式不同,後者接收種子值形式的數字音頻資料以產生視覺輸出,但並不影響音頻播放本身。

  除 Windows Media Player SDK 之外,編寫 DSP 外掛程式還需要 Microsoft DirectX? SDK。這些外掛程式有一個明顯特徵,即實現由 DirectX SDK 提供的 IMediaObject 介面。

  當 DSP 外掛程式安裝在終端使用者的電腦上並被啟用時,Windows Media Player 在資料呈現之前將音頻和視頻資料傳遞給該外掛程式。Player 分配輸入緩衝區和輸出緩衝區,並使外掛程式能夠對這兩個緩衝區進行訪問。必須實現 IMediaObject 介面的各種方法,以便從輸入緩衝區讀取資料,以適用於外掛程式的任何方式對資料進行處理,然後將修改後的資料寫入輸出緩衝區。Windows Media Player 將呈現從輸出緩衝區擷取的資料。

  可以運行 Windows Media Player 外掛程式嚮導建立 DSP 外掛程式的樣本實現。該樣本實現 IMediaObject 介面,並實現一個稱為 DoProcessOutput 的公用程式函數。很多情況下,只需使用 DSP 外掛程式的特有代碼修改此公用程式,並利用嚮導提供的所有其他代碼。

  呈現外掛程式

  使用 Windows Media Format SDK,可以向 Windows Media 檔案中添加任何資料流。此資料流的格式不受限制,包括 Windows Media Player 預設情況下無法識別的格式。

  有兩種方法可用來呈現包含此類資料流的 Windows Media 檔案。

  1、可以編寫一個自訂播放應用程式。這種情況下,除了包含用於呈現您的特有內容的代碼之外,還必須包含用於提供標準音頻、視頻和指令碼流的代碼以及用於顯示使用者介面的代碼。

  2、也可以為 Windows Media Player 編寫一個呈現外掛程式。這種情況下,仍須編寫用於呈現您的特有內容的代碼,但是可以利用 Player 的固有功能來呈現支援的流並提供終端使用者已有所瞭解的使用者介面。

  Windows Media Player 外掛程式嚮導可以建立用於呈現外掛程式的樣本實現。該樣本可實現呈現外掛程式所需的許多介面,還可以實現一個稱為 DoRendering 的公用程式函數。只需使用用於呈現特有流的代碼修改此公用程式,並利用嚮導提供的所有其他代碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.