KSPROPERTY_AEC_STATUS
KSPROPERTY_AEC_STATUS 屬性可用來監視 AEC 節點的狀態, (KSNODETYPE_ACOUSTIC_ECHO_CANCEL) 。 這是 AEC 節點的選擇性屬性。
使用量摘要資料表
Get | 集合 | 目標 | 屬性描述項類型 | 屬性值類型 |
---|---|---|---|---|
是 |
否 |
Pin |
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) |