通过轮询管理数据块
[与此页面关联的功能 波形音频是一项旧功能。 它已被 WASAPI 和 Audio Graphs 取代。 WASAPI 和 Audio Graphs 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 WASAPI 和 音频图 ,而不是 波形音频。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
除了使用回调函数,还可以轮询 WAVEHDR 结构的 dwFlags 成员,以确定音频设备何时完成数据块。 有时轮询 dwFlags 比等待另一种机制从驱动程序接收消息要好。 例如,调用 waveOutReset 函数以释放挂起的数据块后,可以立即轮询以确保在调用 waveOutUnprepareHeader 并释放数据块的内存之前已释放数据块。
可以使用 WHDR_DONE 标志来测试 dwFlags 成员。 只要在 WAVEHDR 结构的 dwFlags 成员中设置了WHDR_DONE标志,驱动程序就会完成数据块。