(audioclient.h) IAudioClock2::GetDevicePosition 方法
GetDevicePosition 方法會直接從硬體取得畫面格中的目前裝置位置。
語法
HRESULT GetDevicePosition(
[out] UINT64 *DevicePosition,
[out] UINT64 *QPCPosition
);
參數
[out] DevicePosition
接收畫面格中的裝置位置。 接收的位置是方法直接從硬體取得的未處理值。 如需詳細資訊,請參閱<備註>。
[out] QPCPosition
在音訊端點裝置讀取 DevicePosition 參數中擷取的裝置位置以回應 GetDevicePosition 呼叫時,接收性能計數器的值。
GetDevicePosition 會將計數器值轉換為 100 奈秒的時間單位,然後再將它寫入 QPCPosition。
如果用戶端不需要性能計數器值,QPCPosition 可以是 NULL。
如需詳細資訊,請參閱<備註>。
傳回值
如果方法成功,它會傳回 S_OK。
傳回碼 | Description |
---|---|
|
參數 DevicePosition 為 NULL。 |
|
音訊端點已中斷連線。 |
|
此數據流尚未呼叫 IAudioClient::Start 方法。 |
備註
這個方法只適用於共用模式數據流。
此方法會擷取兩個相互關聯的數據流位置值:
- 裝置位置。 用戶端會在 DevicePosition 中擷取未處理的裝置位置。 這是目前透過喇叭播放的範例串流位置, (轉譯數據流) 或透過麥克風 (錄製擷取數據流) 。 裝置端點的取樣率可能與用戶端所使用的混合格式取樣率不同。 若要從用戶端擷取裝置位置,請呼叫 IAudioClock::GetPosition。
- 性能計數器。 用戶端會擷取 QPCPosition 中的性能計數器。 GetDevicePosition 會在音訊端點裝置在 GetDevicePosition 方法的 DevicePosition 參數中儲存數據流位置時呼叫 QueryPerformanceCounter 函式,以取得計數器值。 GetDevicePosition 會將計數器值轉換為 100 奈秒的時間單位。 如需 QueryPerformanceCounter 和 QueryPerformanceFrequency 的詳細資訊,請參閱 Windows SDK 檔。
- 將原始計數器值乘以 10,000,000。
- 將結果除以從 QueryPerformanceFrequency 取得的計數器頻率。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | audioclient.h |