GetNextPacketSize 方法检索捕获终结点缓冲区中下一个数据包中的帧数。
Syntax
HRESULT GetNextPacketSize(
[out] UINT32 *pNumFramesInNextPacket
);
参数
[out] pNumFramesInNextPacket
指向 UINT32 变量的指针,该方法将帧计数写入其中(下一捕获数据包中的音频帧数)。
返回值
如果方法成功,则返回S_OK。 如果失败,则可能的返回代码包括但不限于下表中显示的值。
| 返回代码 | Description |
|---|---|
|
音频终结点设备已拔出,或者已重新配置、禁用、删除音频硬件或关联的硬件资源,否则无法使用。 |
|
流的资源已失效。 由于以下原因,可能会引发此错误: - 流已挂起。 - 独占流或卸载流已断开连接。 - 具有独占模式或卸载流的打包应用程序已静止。 - 关闭“受保护的输出”流。 |
|
Windows 音频服务未运行。 |
|
参数 pNumFramesInNextPacket 为 NULL。 |
注解
仅对共享模式流使用此方法。 它不适用于独占模式流。
在调用 IAudioCaptureClient::GetBuffer 方法检索下一个数据包之前,客户端可以调用 GetNextPacketSize 来检索下一个数据包中的音频帧数。 GetNextPacketSize 报告的计数与 GetBuffer 调用(通过 pNumFramesToRead 输出参数)中检索的计数匹配,该计数遵循 GetNextPacketSize 调用。
数据包始终包含一个整数的音频帧。
必须在 GetBuffer 和 IAudioCaptureClient::ReleaseBuffer 方法调用的同一线程中调用 GetNextPacketSize,以便获取和释放捕获终结点缓冲区中的数据包。
有关使用 GetNextPacketSize 方法的代码示例,请参阅 捕获流。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | audioclient.h |
另请参阅
IAudioCaptureClient::GetBuffer