Windows 媒體音訊編碼器會以完整的格式列舉其所有支持的輸出類型。 藉由呼叫 IMediaObject::GetOutputType 或 IMFTransform::GetAvailableOutputType來擷取您想要的類型後,直接將該類型作為輸出類型設定,方法是呼叫 IMediaObject::SetOutputType 或 IMFTransform::SetOutputType。
音訊編碼器所支援的輸出媒體類型會隨著編碼器屬性的設定而變更。 您必須先設定您想要使用的所有編碼器屬性,才能列舉輸出類型。
音訊編碼器支援雙傳遞和 VBR 模式,但設定方式與視訊不同。 如需詳細資訊,請參閱 列舉特定編碼模式的音訊類型。
在您設定輸出類型之前,音訊編碼器所支援的輸入類型無法使用。 如果您在設定輸出類型之前呼叫 IMediaObject::GetInputType 或 IMFTransform::GetInputType,則方法會分別傳回DMO_E_NO_MORE_ITEMS或MFT_E_NO_MORE_TYPES。 設定輸出類型之後,編碼器會列舉它針對所選輸出類型所支援的輸入類型。
Windows 媒體音訊編碼器不會執行音訊重新取樣。 這表示編碼器輸出類型和編碼器輸入類型必須具有相同數目的通道、每個樣本的位和取樣率。 如需詳細資訊,請參閱 尋找音訊編碼器輸出類型。
注意
音訊編碼器所列舉的每個輸出類型都包含一個由 AM_MEDIA_TYPE.pbFormat指向的 WAVEFORMATEX 結構,並附加延伸數據。 擴充數據的大小是由 WAVEFORMATEX.cbSize所指定。 此數據必須與編碼的內容一起保留,才能將其傳遞至譯碼器。 若沒有擴充格式數據,就無法解壓縮內容。
相關主題