IAudioClock::GetFrequency 方法 (audioclient.h)
GetFrequency 方法获取设备频率。
语法
HRESULT GetFrequency(
[out] UINT64 *pu64Frequency
);
参数
[out] pu64Frequency
指向 UINT64 变量的指针,方法在其中写入设备频率。 有关详细信息,请参阅“备注”。
返回值
如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。
返回代码 | 说明 |
---|---|
|
参数 pu64Frequency 为 NULL。 |
|
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。 |
|
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 |