我正在尝试编写一个程序来在 C++ 中播放一个小的 .wav 文件。我已经按照 DirectX SDK 文档对其进行了编程,以在辅助静态缓冲区上进行写入和播放。它运行正常,只是在任何 .wav 文件的播放结束时,都会出现非常明显的“咔哒”声。我确信这不是我的音频硬件方面的缺陷,因为我知道使用 DirectSound 的任何其他游戏都没有它。
我试过在每个周期都为它轮询 GetCurrentPosition 并在它结束之前停止它,但不可靠。我不能在主缓冲区上播放它,因为在主缓冲区上播放的 .wav 必须循环播放,这是我不想要的。
有人知道解决这个问题的方法吗?提前致谢。