在播放時取得設定檔資訊
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows Media Format 11 SDK。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
用來建立檔案的設定檔資訊會儲存在檔案的標頭區段中。 這兩個讀取器物件都可以從檔案標頭存取設定檔資訊。 您可能想要從讀取器存取設定檔資料的原因有幾個。 最常見的情況是,您必須擷取資料流程、相互排除物件和頻寬共用物件的相關資訊。
非同步讀取器物件和同步讀取器物件都可以查詢 IWMProfile 介面。 對設定檔資訊所做的任何變更都不會影響讀取器中的檔案。 如需存取設定檔資訊的詳細資訊,請參閱 使用設定檔。
串流資訊
有時請務必知道資料流程的設定方式。 當您從其中一個讀取器物件擷取媒體屬性時,您會取得輸出的屬性。 輸出屬性描述讀取器會如何傳遞來自資料流程的未壓縮資料,而不是在 ASF 檔案中設定資料流程的方式。
從任一讀取器物件接收未壓縮的資料流程樣本時,您必須使用設定檔資訊來識別壓縮資料的格式。 如果您要將壓縮資料流程寫入另一個 ASF 檔案,這特別重要。
使用智慧型重新壓縮將音訊串流轉碼為較低的位元速率時,您也需要存取串流資訊。
您可能想要判斷資料流程是否使用變數位元速率 (VBR) 編碼來寫入。 您無法從任一讀取器物件的 IWMProfile 介面存取任何 VBR 資訊。 這是因為 VBR 資訊不會在編碼之後儲存在檔案中。 您可以取得讀取器物件的IWMHeaderInfo 介面指標,並呼叫 IWMHeaderInfo::GetAttributeByName,以判斷是否使用 VBR 編碼建立資料流程。 您必須指定資料流程編號,並將g_wszIsVBR傳遞為屬性名稱。
相互排除資訊
如果您想要建立使用互斥的讀取應用程式,您會想要存取設定檔中包含的任何互斥物件相關資訊。 對於位速率以外的所有互斥類型,讀取應用程式會負責任何所需的串流切換。 若要切換資料流程,您必須知道哪些資料流程是哪一個資料流程。
頻寬共用資訊
設定檔中包含的頻寬共用物件僅供參考之用。 寫入器物件或其中一個讀取器物件都不會因為頻寬共用資料而採取任何動作。 如果您想要在讀取應用程式中使用頻寬共用,您必須從設定檔資料存取頻寬共用資訊。
注意
並非所有用來建立檔案的設定檔中的資訊都存在於檔案標頭中。 一般規則只會在編碼時使用的資料不會保存在檔案中。 這包括使用 IWMWriterAdvanced2::SetInputSetting 方法所設定的輸入設定,以及使用 IWMPropertyVault::SetProperty 方法設定的屬性。
相關主題