共用方式為


指派輸出格式

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

某些編解碼器可以將數位媒體數據解壓縮成數種未壓縮的格式。 您可以使用異步讀取器或同步讀取器,找到特定輸出的所有支援格式。

若要檢查輸出的所有可用格式,請執行下列步驟。 異步讀取器和同步讀取器都使用相同的程式。 如果介面名稱不同,同步讀取器方法會列在異步讀取器方法之後的括弧中。

  1. 建立讀取器物件並載入檔案以供讀取。 如需詳細資訊,請參閱 建立讀取器和開啟檔案(或 建立同步讀取器並開啟檔案)。

  2. 決定您要尋找可用格式的輸出。 如果您還不知道要使用哪一個輸出,您可以使用 中的程式來識別檔案中的輸出,以識別輸出號碼

  3. 呼叫 IWMReader::GetOutputFormatCount 來擷取所需輸出的可用格式總數(或 IWMSyncReader::GetOutputFormatCount)。

  4. 逐一循環查看可用的格式,針對每個格式執行下列步驟:

    • 呼叫 IWMReader::GetOutputFormat 來擷取目前輸出格式的 IWMOutputMediaProps 介面(或 IWMSyncReader::GetOutputFormat)。

    • 對IWMMediaProps::GetMediaType進行兩次呼叫,以擷取輸出格式的WM_MEDIA_TYPE 結構。 進行第一次呼叫以取得結構的大小,然後為其配置記憶體,並在第二次呼叫時將指標傳遞至配置的記憶體。

    • WM_MEDIA_TYPE.subtype 中尋找輸出格式的媒體子類型,

    • 針對視訊,如果目前的子類型是您想要用於輸出的格式,請中斷迴圈。 否則,請進入下一次迭代。

      針對音訊,您必須根據您的需求檢查 WAVEFORMATEX 結構中的值。 WM_MEDIA_TYPE.pbFormat 會指向 用於音訊輸出的 WAVEFORMATEX 結構。

  5. 當您找到所需的輸出時,請呼叫 IWMReader::SetOutputProps 來設定它以與讀取器搭配使用(或 IWMSyncReader::SetOutputProps)。 您必須將指標傳遞至迴圈第一個步驟中取得的 IWMOutputMediaProps 介面。

IWMMediaProps 介面

IWMOutputMediaProps 介面

IWMReader 介面

IWMSyncReader 介面

與輸出工作