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

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

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

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

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

Samle 描述
AudioPlayer 播放 Windows 媒體檔案,包括 DRM 保護的檔案。 它是透過 GUI 來控制,而命令包括 Play、Pause、Seek 和 Stop。 它可以使用 WMVNetWrite 範例) 播放從網際網路讀取的本機檔案或檔案 (包括這些輸出。 注意: 此範例的 DRM 部分不支援以 x64 為基礎的 Windows 版本。
DRMHeader DRMHeader 是一種主控台應用程式,它會使用中繼資料編輯器的 IWMDRMEditor 介面來讀取檔案的 DRM 屬性,而不連結至 DRM 靜態程式庫。 注意: x64 型 Windows 版本不支援此範例。
DRMShow DRMShow 是主控台應用程式,示範如何使用IWMDRMReader::GetDRMProperty方法來讀取 Windows 媒體檔案的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 保護,以及使用 100 或以下層級 DRM 的檔案。 如需詳細資訊,請參閱範例目錄中的 readme.txt。
DirectShowInterop/DSSeekFm 此範例示範如何使用 DirectShow WM ASF 讀取器篩選在 DirectShow 篩選圖形中播放 ASF 內容,以及如何在 Windows 媒體格式 SDK 中使用框架搜尋支援。
Managed/WMFSDKWrapper 此 Managed 元件可作為 Managed 程式碼範例用來存取此 SDK 某些中繼資料介面的包裝函式。
Managed/MetadataEdit 此 C# 應用程式可用來檢視和編輯 Windows 媒體檔案中的中繼資料。
MetaDataEdit 這是 Managed MetadataEdit 應用程式的 C++ 版本。
ReadFromStream 此主控台應用程式範例示範如何使用 WMReader 從 IStream 讀取資料。 IStream 來源已實作為使用 Windows Media Format (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 程式庫範例示範如何建立設定檔。 它示範如何為各種串流類型建立媒體類型和資料流程, (音訊、視訊、腳本、影像、檔案傳輸和 Web) 。 它不會示範如何使用系統設定檔,或如何將系統設定檔轉換成指定 Windows 媒體音訊和視訊 9 系列編解碼器的設定檔。
WMProp 此主控台應用程式示範如何使用中繼資料編輯器物件和讀取器中的設定檔資訊來擷取屬性。
WMStats 此主控台應用程式會顯示讀取器和寫入器統計資料。 WMStats 的多個實例也可以在一部電腦上同時使用。 以伺服器身分啟動一個實例,以將資料流程傳送至網路,然後以用戶端身分執行第二個實例,以確認伺服器已正確串流。
WMSyncReader 此主控台應用程式範例示範如何使用 IWMSyncReader 讀取媒體檔案,而不需建立任何額外的執行緒或使用回呼。 下列功能已實作:讀取壓縮或解壓縮的範例
以時間為基礎的搜尋
以框架為基礎的搜尋
IStream 衍生來源
WMVAppend 此主控台應用程式會採用兩個 Windows 媒體檔案進行輸入,並嘗試建立輸出檔案,其中包含第一個的內容,後面接著第二個。 此範例會比較兩個輸入檔的設定檔,以確保它們足以附加。 如果這不是這種情況,就會顯示錯誤訊息。 例如,當一個檔案只有音訊,而第二個檔案是音訊視訊檔案,或兩個音訊檔案有不同的位元速率時,就會發生錯誤訊息。此範例接受 VBR () 來源的變數位元速率。 不過,在比較兩個 VBR 來源的設定檔時,此樣本會忽略平均位元速率差異,因為即使兩個 VBR 資料流程使用相同的設定檔建立,也會有不同的平均位速率。 WMVAppend 無法比較非限制位元速率型 VBR 資料流程的尖峰位元速率,或品質層級以品質為基礎的 VBR 資料流程,因為此資訊不存在於來源檔案中。 因此,使用者必須負責確保使用相同的設定檔建立兩個原始程式檔。 否則,可以建立不正確內容。
WMVCopy 此範例顯示覆制 WMV 檔案所需的程式碼。 它示範如何讀取和寫入壓縮的範例、讀取標頭屬性和腳本,以及修改標頭屬性。
WMVNetWrite 此主控台應用程式會顯示 Windows 媒體檔案如何跨網際網路串流。 此範例需要指定埠,然後可以使用播放機播放檔案。
WMVRecompress 此主控台應用程式示範如何重新壓縮 WMV 檔案。 其示範如何讀取未壓縮的範例、撰寫未壓縮的範例,以及執行多階段編碼、多通道輸出和智慧式重新壓縮。

關於 Windows 媒體格式 SDK

程式設計指南