共用方式為


設定音訊擷取屬性

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

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

擷取的可用取樣率和音訊格式是由驅動程式決定。 使用音訊擷取篩選器輸出釘選上的 IAMStreamConfig 介面來列舉可用的取樣率和格式,並設定所需的格式。 篩選準則可以將下游連接到任何接受輸出針腳媒體類型的篩選。

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