共用方式為


Windows 媒體格式 SDK 範例應用程式

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器資料寫入器已取代它。 來源讀取器接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式碼盡可能使用 來源讀取器匯出寫入器,而不是 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

此 SDK 所提供的範例程式代碼形式為visual Studio 2005 Microsoft專案。 大部分範例都在C++中,但 ManagedWMFSDKWrapper 和 ManagedMetadataEdit 需要 C# 。

除非已安裝 Windows 媒體格式 SDK 或 Windows Player SDK,否則這些範例將無法運作。

每個範例的使用資訊都包含在每個範例目錄中的 readme.txt 檔案中。

Samle 描述
音樂播放器 播放 Windows 媒體檔案,包括受DRM保護的檔案。 它是透過 GUI 來控制,而且命令包括播放、暫停、搜尋和停止。 它可以播放從因特網讀取的本機檔案或檔案(包括使用WMVNetWrite範例輸出到因特網的檔案)。 注意: Windows x64 型版本的 Windows 不支援此範例的 DRM 部分。
DRMHeader DRMHeader 是一種控制台應用程式,使用元數據編輯器的 IWMDRMEditor 介面來讀取檔案的DRM屬性,而不連結至DRM靜態庫。 注意: x64 型 Windows 版本不支援此範例。
DRMShow DRMShow 是控制台應用程式,示範如何使用 IWMDRMReader::GetDRMProperty 方法來讀取 Windows Media 檔案 DRM 属性。此範例示範如何使用 IWMDRMReader::GetDRMProperty 方法,以及可從DRM讀取器擷取的屬性。 它不會示範如何取得受DRM保護內容的授權。 此範例需要DRM存根連結庫 WMStubDRM.lib才能建置。
注意: x64 型 Windows 版本不支援此範例。
當您從 Microsoft 取得 WMStubDRM.lib 時,函式庫會被賦予應用程式安全性層級。 如果您收到的連結庫安全性層級不足以播放受保護的檔案,則此範例會顯示錯誤。
DirectShowInterop/DSCopy 使用 DirectShow WM ASF 寫入器篩選器,將一或多個檔案轉碼為 ASF 檔案。 輸入檔案可以是 DirectShow 所支援的任何壓縮或未壓縮格式。
DirectShowInterop/DSPlay 此範例是支援 DRM 的互動式音訊/視訊媒體檔案播放程式。 它會使用 DirectShow 的 WM ASF 讀取器篩選器來播放 Windows 媒體檔案(ASF、WMA、WMV),而不需要 DRM 保護,以及使用 DRM 層級為 100 或以下層級的檔案。 如需詳細資訊,請參閱範例目錄中的 readme.txt。
DirectShowInterop/DSSeekFm 此範例示範如何使用 DirectShow WM ASF 讀取器篩選器在 DirectShow 篩選器圖中播放 ASF 內容,以及如何在 Windows 媒體格式 SDK 中使用畫格搜尋功能。
Managed/WMFSDKWrapper 此受控組件充當包裝器,用於讓受控代碼範例存取此 SDK 的某些元數據介面。
管理/元數據編輯 此 C# 應用程式可用來檢視和編輯來自 Windows 媒體檔案的元數據。
MetaDataEdit 這是 Managed MetadataEdit 應用程式的 C++ 版本。
ReadFromStream 此主控台應用程式範例示範如何使用 WMReader 從 IStream 讀取數據。 IStream 來源已經實作,用於使用 Windows 媒體格式(WMA/WMV/ASF)的檔案。 注意: 此範例不會示範如何處理 WMReader 傳出的媒體範例。 如需如何處理音訊/視訊或其他媒體範例類型的範例,請參閱 Windows 媒體格式 SDK 隨附的其他範例,例如 AudioPlayer。
UncompAVIToWMV 此主控台應用程式範例會顯示將 AVI 檔案壓縮至 WMV 檔案所需的程式代碼。 它示範如何合併來自數個 AVI 檔案的音訊和視訊串流範例,並將其合併為類似的數據流,或根據來源數據流配置檔建立新的數據流。 它也會示範如何建立任意數據流、進行多遍編碼、新增 SMPTE 時碼,以及套用 DRM 版本 1 的保護。
WMGenProfile/exe 此範例已從 7.1 版更新。 它現在是 MFC 對話框應用程式。 WMGenProfile 範例示範如何使用 WMGenProfile 靜態庫。 它也可作為建立個人資料的工具。 此工具適用於熟悉 Windows 媒體格式的開發人員。 UI 尚未測試用戶體驗,並非建議如何將這項資訊呈現給使用者。
WMGenProfile/lib GenProfile 函式庫範例示範如何建立設定檔。 它示範如何為不同類型的串流(音訊、視訊、腳本、圖像、文件傳輸和網頁)建立媒體類型和串流。 它不會示範如何使用系統配置檔,或如何將系統配置檔轉換成指定Windows 媒體音訊和視訊 9 系列編解碼器的配置檔。
WMProp 此主控台應用程式示範如何使用元資料編輯器物件和讀取器中的配置檔資訊來擷取屬性。
WMStats 此主控台應用程式會顯示讀取器和寫入器統計數據。 您也可以在一部計算機上同時使用多個 WMStats 實例。 啟動一個實例做為伺服器,以將數據流傳送至網路,然後以用戶端身分執行第二個實例,以確認伺服器已正確串流。
WMSyncReader 此控制台應用程式範例示範如何使用 IWMSyncReader 讀取媒體檔案,而不需建立任何額外的線程或使用回呼。 下列功能已實作:讀取壓縮或解壓縮的範例
以時間為基礎的搜尋
框架式搜尋
IStream 衍生來源
WMVAppend 此控制台應用程式會採用兩個 Windows Media 檔案進行輸入,並嘗試建立輸出檔案,其中包含第一個內容,後面接著第二個檔案。 樣本會比較兩個輸入檔的設定檔,以確保它們相似到足以被附加。 如果情況並非如此,則會出現錯誤訊息。 例如,當一個檔案只有音訊,而第二個是音訊視訊檔案,或兩個音訊檔案有不同的比特率時,就會發生錯誤訊息。此範例接受可變比特率 (VBR) 來源。 不過,在比較兩個 VBR來源的配置檔時,此範例會忽略平均比特率差異,因為即使兩個 VBR 數據流是使用相同的配置檔建立,也會有不同的平均比特率。 WMVAppend 無法比較不受限制之以比特率為基礎的 VBR 數據流的尖峰比特率,或品質型 VBR 數據流的品質等級,因為來源檔案中並不存在這項資訊。 因此,用戶有責任確保使用相同的配置檔建立兩個原始檔案。 否則,可以建立無效的內容。
WMVCopy 此範例顯示複製 WMV 檔案所需的程式代碼。 它示範如何讀取和寫入壓縮範例、讀取標頭屬性和腳本,以及修改標頭屬性。
WMVNetWrite 此主控台應用程式會顯示 Windows 媒體檔案如何透過因特網串流。 此範例需要指定埠,然後使用播放機來播放檔案。
WMVRecompress 此主控台應用程式示範如何重新壓縮 WMV 檔案。 它示範讀取未壓縮的範例、撰寫未壓縮的範例,以及執行多階段編碼、多通道輸出和智慧重新壓縮。

關於 Windows 媒體格式 SDK

程式設計手冊