KSPROPERTY_RTAUDIO_POSITIONREGISTER
KSPROPERTY_RTAUDIO_POSITIONREGISTER 屬性會將特定資料流程的音訊裝置位置暫存器對應至用戶端可以存取的虛擬記憶體位置。
下表摘要說明此屬性的功能。
使用量摘要表格
Get | 集合 | 目標 | 屬性描述元類型 | 屬性值類型 |
---|---|---|---|---|
是 |
否 |
Pin |
屬性描述元 (實例資料) 是包含 KSPROPERTY 結構的KSRTAUDIO_HWREGISTER_PROPERTY結構。 傳送要求之前,用戶端會載入 結構,其中包含指出暫存器慣用基底位址的值。
屬性值 (作業資料) 是屬性處理常式寫入其已對應硬體位置暫存器之虛擬位址的KSRTAUDIO_HWREGISTER結構。 用戶端可以直接從這個位址讀取暫存器。 KSRTAUDIO_HWREGISTER 結構也會指定位置暫存器本身遞增的速率。
傳回值
KSPROPERTY_RTAUDIO_POSITIONREGISTER屬性要求會傳回STATUS_SUCCESS,表示它已順利完成。 否則,要求會傳回適當的失敗狀態碼。
備註
音訊應用程式通常必須監視音訊資料流程的目前位置。 這個位置會指定為數據流開頭的位元組位移:
在轉譯資料流程的情況下,資料流程的位置是目前透過數位對類比轉換器播放的音訊畫面位元組位移, (DAC) 。
在擷取資料流程的情況下,資料流程的位置是目前透過類比對數位轉換器錄製的音訊畫面位元組位移, (ADC) 。
某些音訊裝置包含位置暫存器,會在資料流程執行時持續遞增。 對於將所有數位和類比函式併入單一晶片的音訊裝置,位置暫存器通常會直接指出目前的資料流程位置。
不過,對於將數位和類比函式分割成個別匯流排控制器和編解碼器晶片的晶片組,位置暫存器通常位於匯流排控制器晶片中,並指出下列事項:
在轉譯資料流程的情況下,位置暫存器會指出匯流排控制器寫入編解碼器的最後一個音訊框架位元組位移。
如果是擷取資料流程,位置暫存器會指出匯流排控制器從編解碼器讀取的最後一個音訊框架位元組位移。
在這兩種情況下,位置暫存器值不包含透過編解碼器的延遲。 如果用戶端已判斷編解碼器延遲,它可以將此延遲新增至位置暫存器值,以估計 DC 或 ADC) 的 true 資料流程位置 (。 針對 CodecDelay 值,指定透過編解碼器最差的延遲,您可以查詢 KSPROPERTY_RTAUDIO_HWLATENCY 屬性。
如果成功,KSPROPERTY_RTAUDIO_POSITIONREGISTER屬性要求會將位置暫存器對應至可從使用者模式或核心模式存取用戶端的虛擬記憶體位址,如用戶端所指定。 之後,用戶端會從這個位址讀取,以取得位置暫存器目前的值。
如果音訊硬體不支援可對應至虛擬位址的位置暫存器,則屬性要求會失敗。 在此情況下,用戶端必須從 KSPROPERTY_AUDIO_POSITION 屬性判斷位置。
當針腳關閉時,位置暫存器對應就會終結。 用戶端只能在開啟的釘選存留期內對應暫存器一次,而後續呼叫重新對應針腳的位置暫存器失敗。
讀取位置暫存器的速度通常比傳送KSPROPERTY_AUDIO_POSITION要求更快,這需要使用者模式與使用者模式用戶端的核心模式之間的轉換。
規格需求
版本 |
可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 |
Ksmedia.h |