音訊功能
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
針對音訊功能,IAMStreamConfig::GetStreamCaps 會傳回一組 AM_MEDIA_TYPE 和 AUDIO_STREAM_CONFIG_CAPS 結構的數位。 如同視訊,您可以使用這個來公開針腳上的各種音訊功能,例如數據速率,以及它是否支援單聲道或立體聲。
如需與 GetStreamCaps 相關的影片相關範例,請參閱 影片功能。
假設您支持脈衝碼調節(PCM)波格式(如 WAVEATEX 結構所代表),取樣率為 11,025、22,050 和每秒 44,100 個樣本,全部為 8 或 16 位單聲道或立體聲。 在此情況下,您會提供兩組結構。 第一對將有一個 AUDIO_STREAM_CONFIG_CAPS 功能結構,表示您至少支援 11,025 到每秒 22,050 個樣本,數據粒度為每秒 11,025 個樣本(粒度是支援值之間的差異):每個樣本的最小 8 位到 16 位上限位,每個樣本的數據粒度為 8 位;和一個通道最小值和兩個通道最大值。 第一組的媒體類型會是該範圍內的預設 PCM 格式,可能是 22 kbhertz (kHz),16 位立體聲。 您的第二對是顯示每秒最小和最大樣本 44,100 的功能;每個樣本 8 位 (最小值) 和 16 位 (最大值) 位元,每個樣本的數據粒度為 8 位:和一個通道最小值和兩個通道最大值。 媒體類型會是預設的 44 kHz 格式,可能是 44 kHz 16 位立體聲。
如果您支援非 PCM 波格式,此方法所傳回的媒體類型可以顯示您支援哪些非 PCM 格式(使用預設取樣率、比特率和通道),以及媒體類型隨附的功能結構可以描述您支援的其他取樣率、比特率和通道。
相關主題