共用方式為


KSPROPERTY_AEC_STATUS

KSPROPERTY_AEC_STATUS 屬性可用來監視 AEC 節點的狀態, (KSNODETYPE_ACOUSTIC_ECHO_CANCEL) 。 這是 AEC 節點的選擇性屬性。

使用量摘要資料表

Get 集合 目標 屬性描述項類型 屬性值類型

Pin

KSNODEPROPERTY

ULONG

) 作業資料 (屬性值為 ULONG 類型。 這是狀態值,可以設定為下表左欄中一或多個旗標位的位 OR,這些位定義于標頭檔 Ksmedia.h 中。 標頭檔 Dsound.h 中對應的DSCFX_AEC_STATUS旗標會顯示在資料表的右欄中。 如需這些旗標的相關資訊,請參閱Microsoft Windows SDK檔。

AEC 狀態旗標 DSCFX_AEC_STATUS旗標

AEC_STATUS_FD_HISTORY_UNINITIALIZED

0x0

DSCFX_AEC_STATUS_HISTORY_UNINITIALIZED

AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED

0x1

DSCFX_AEC_STATUS_HISTORY_CONTINUOUSLY_CONVERGED

AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED

0x2

DSCFX_AEC_STATUS_HISTORY_PREVIOUSLY_DIVERGED

AEC_STATUS_FD_CURRENTLY_CONVERGED

0x8

DSCFX_AEC_STATUS_CURRENTLY_CONVERGED

傳回值

KSPROPERTY_AEC_STATUS屬性要求會傳回STATUS_SUCCESS,表示它已順利完成。 否則,要求會傳回適當的錯誤狀態碼。

備註

AEC 狀態旗標中的三個最小有效位 (請參閱上表,) 代表 AEC 演算法 (CH) 的聚合歷程記錄。 MICROSOFT DirectSound 應用程式可以使用 CH 狀態位來判斷演算法是否已交集,以及它是否在開始處理資料之後保持交集狀態。 視音訊硬體而定,AEC 演算法可能無法交集,在此情況下,產生的擷取緩衝區可能會包含來自喇叭的回應。

建立包含 AEC 節點的篩選或重設節點時,AEC 演算法一開始會將三個 CH 狀態位設定為零。 此設定代表未初始化的狀態,AEC_STATUS_FD_HISTORY_UNINITIALIZED。

AEC 演算法交集之後,CH 狀態會切換至交集狀態,AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED。 如果 AEC 演算法遺失聚合,CH 狀態會切換至發散狀態,AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED。 雖然狀態最有可能從交集狀態切換至發散狀態,但也可能直接從未初始化的狀態切換至發散狀態。 在 CH 狀態切換至發散狀態之後,它會維持在該狀態中,直到偵測到演算法重設或耗盡為止。

當 AEC 系統篩選在四個針腳中的任何一個偵測到耗盡時--擷取、擷取、轉譯或轉譯,它會重設其內部狀態,包括聚合歷程記錄。

請注意,目前未使用三個 CH 狀態位的位 2。

除了使用 CH 狀態位,應用程式可以藉由檢查AEC_STATUS_FD_CURRENTLY_CONVERGED旗標位來監視即時聚合狀態。 如果設定此位,則演算法目前已交集。 當原音路徑發生變更時,演算法可能會暫時失去聚合。 即時聚合旗標會經過篩選,以防止這類暫時損失不正確地將 CH 狀態位切換至DSCFX_AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED狀態。

規格需求

標頭

Ksmedia.h (包含 Ksmedia.h)

另請參閱

KSNODEPROPERTY

KSNODETYPE_ACOUSTIC_ECHO_CANCEL