IAudioClient::GetStreamLatency 方法(audioclient.h)

GetStreamLatency 方法检索当前流的最大延迟,并且可以在初始化流后随时调用。

Syntax

HRESULT GetStreamLatency(
  [out] REFERENCE_TIME *phnsLatency
);

参数

[out] phnsLatency

指向 REFERENCE_TIME 变量的指针,该方法在其中写入表示延迟的时间值。 时间以 100 纳秒为单位表示。 有关 REFERENCE_TIME的详细信息,请参阅 Windows SDK 文档。

返回值

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

返回代码 Description
AUDCLNT_E_NOT_INITIALIZED
音频流尚未成功初始化。
AUDCLNT_E_DEVICE_INVALIDATED
AUDCLNT_E_RESOURCES_INVALIDATED
流的资源已失效。 由于以下原因,可能会引发此错误:
- 流已挂起。
- 独占流或卸载流已断开连接。
- 具有独占模式或卸载流的打包应用程序已静止。
- 关闭“受保护的输出”流。
音频终结点设备已拔出,或者已重新配置、禁用、删除音频硬件或关联的硬件资源,否则无法使用。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows 音频服务未运行。
E_POINTER
参数 phnsLatencyNULL

注解

此方法需要事先初始化 IAudioClient 接口。 对此方法的所有调用都将失败,AUDCLNT_E_NOT_INITIALIZED错误,直到客户端通过成功调用 IAudioClient::Initialize 方法初始化音频流。

此方法检索当前流的最大延迟。 在 IAudioClient 对象的生存期内,该值不会更改。

呈现客户端可以使用此延迟值计算在任意单个处理传递期间可以写入的最小数据量。 若要写入低于此最小值,风险是将故障引入音频流。 有关详细信息,请参阅 IAudioRenderClient::GetBuffer

要求

Requirement 价值
最低支持的客户端 Windows Vista [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2008 [桌面应用 |UWP 应用]
目标平台 Windows操作系统
Header audioclient.h

另请参阅

IAudioClient 接口

IAudioClient::Initialize

IAudioRenderClient::GetBuffer