KSPROPERTY_RTAUDIO_GETREADPACKET
KSPROPERTY_RTAUDIO_GETREADPACKET 返回有关捕获的音频数据包的信息。
使用情况摘要表
获取 | 设置 | 目标 | 属性描述符类型 | 属性值类型 |
---|---|---|---|---|
是 | 否 | 固定 | KSPROPERTY | KSRTAUDIO_GETREADPACKET_INFO |
属性描述符(实例数据)是 KSPROPERTY 结构。 在发送请求之前,客户端会加载包含指示数据包数、数据包长度和其他信息的值的结构。
属性值是 KSRTAUDIO_GETREADPACKET_INFO 类型的变量。
返回值
KSPROPERTY_RTAUDIO_GETREADPACKET 属性请求返回 STATUS_SUCCESS,以指示已成功完成。 否则,请求将返回适当的故障状态代码。
STATUS_DEVICE_NOT_READY - 如果没有可用的新数据,驱动程序将返回此错误。
注解
在从 WaveRT 缓冲区读取捕获的音频数据之前,OS 将调用此例程以获取有关可用数据的信息。
数据包编号标识流中的数据包。 当流处于 KSSTATE_STOP 时,这会重置为零。 数字随着每个捕获的缓冲区而增加。 根据数据包编号,OS 可以导出 WaveRT 缓冲器内的数据包位置,并且还可以导出数据包相对于流的开始的流位置。
数据包大小是 WaveRT 缓冲区大小除以传递给 KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 的 NotificationCount。 OS 可以随时调用此例程。 在正常操作中,操作系统在驱动程序设置缓冲区通知事件后或在 MoreData 的前一次调用返回 true 后调用此例程。 当操作系统调用该例程时,驱动程序可以假设操作系统已经完成读取所有先前的数据包。 如果硬件已经捕获了足够的数据,则驱动程序可以立即将下一个完整的数据包突发到 WaveRT 缓冲区,并再次设置缓冲区事件。 在捕获溢出的情况下(当操作系统没有足够快地读取数据时),音频驱动器可能会丢弃或覆盖一些音频数据。 音频驱动程序首先丢弃或覆盖最旧的数据。即使操作系统可能没有读取数据,音频驱动程序也可能继续推进其内部数据包计数器。
要求
版本 |
适用于 Windows 10 及更高版本的 Windows 操作系统。 |
标头 |
Ksmedia.h |