IAudioClock::GetFrequency 方法 (audioclient.h)

GetFrequency 方法获取设备频率。

语法

HRESULT GetFrequency(
  [out] UINT64 *pu64Frequency
);

参数

[out] pu64Frequency

指向 UINT64 变量的指针,方法在其中写入设备频率。 有关详细信息,请参阅“备注”。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_POINTER
参数 pu64FrequencyNULL
AUDCLNT_E_DEVICE_INVALIDATED
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 音频服务未运行。

注解

设备频率是音频设备中的硬件时钟生成的频率。 此方法以与 IAudioClock::GetPosition 方法报告的设备位置兼容的单位报告设备频率。 例如,如果对于特定流, GetPosition 方法将位置 p 表示为字节偏移量, 则 GetFrequency 方法表示频率 f (以字节/秒为单位)。 对于任何流,无论 p 和f 的表示单位如何,始终都可以可靠地将自流开始的偏移量(以秒为单位)计算为 /pf

在 Windows Vista 中,连续调用 GetFrequency 报告的设备频率在流的生存期内永远不会更改。

如果音频设备生成的时钟以名义恒定频率运行,则频率仍可能会随时间而略有变化,因为相对于参考时钟的偏移或抖动。 引用时钟可以是挂钟,也可以是 QueryPerformanceCounter 函数使用的系统时钟。 GetFrequency 方法忽略此类变体,并仅报告恒定的频率。 但是, IAudioClient::GetPosition 方法报告的位置会考虑所有此类变体,以在每次调用时报告准确的位置值。 有关 QueryPerformanceCounter 的详细信息,请参阅 Windows SDK 文档。

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 audioclient.h

另请参阅

IAudioClock 接口

IAudioClock::GetPosition