共用方式為


設定音訊擷取屬性

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngine,以及 Media Foundation 中的音訊/視訊擷取 取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

音訊擷取濾鏡上的每個輸入針腳都會公開 IAMAudioInputMixer 介面。 使用此介面在針腳上呼叫 IAMAudioInputMixer::put_Enable 方法,以啟用或停用特定的輸入。 也使用此介面來設定輸入的屬性,例如低音、高音和音量層級。 如果您要一次擷取多個輸入,您可以透過篩選本身上的 IAMAudioInputMixer 介面來控制整體低音、高音和音量層級。

驅動程式會決定擷取的可用取樣率和音訊格式。 在音訊擷取篩選器的輸出端子上使用 IAMStreamConfig 介面來列舉可用的取樣率和格式,並設定所需的格式。 濾鏡可以將下游連接到任何接受輸出引腳媒體類型的濾鏡。

音訊擷取篩選器也會公開 IAMBufferNegotiation 介面。 此介面適用於控制音訊預覽中的延遲量。 根據預設,音訊擷取篩選器會使用半秒的緩衝區大小。 此緩衝區大小最適合用於擷取,但會導致半秒預覽延遲。 若要減少延遲,請先呼叫 IAMBufferNegotiation::SuggestAllocatorProperties 方法,再連接音頻擷取濾波器的輸出端子。 這個方法會採用 ALLOCATOR_PROPERTIES 結構的指標。 使用 cbBuffer 成員,以位元組為單位指定緩衝區大小。 80 毫秒的緩衝區通常很安全,但 30 或 40 毫秒的緩衝區可能已足夠。 如果緩衝區太小,則音效品質會降低。