我正在使用 XAudio2 在我的游戏中播放声音。我有大约 16 个源声音,其中 3 个是循环效果,需要像背景音乐一样播放。我有另一种背景音乐,它开始定期播放(完成后等待 1 分钟并重新启动)。每当需要播放另一种效果时,如按钮点击、开枪等,我都会搜索可用的源并将缓冲区附加到它并开始播放。
我的问题是一旦背景音乐开始播放,将只播放循环效果,而其他需要在游戏操作(例如按钮点击)上播放的效果不会播放。一旦背景音乐停止,所有这些延迟效果都会播放。此外,如果我使用一个循环效果(而不是 3 个),所有这些都会以正确的顺序播放。
我正在为效果使用子混音声音,背景音乐直接提交给母带声音。
谁能帮帮我,因为我被困在这里
最佳答案
每当有人打算同时播放不同的声音时,他或她应该确保这些声音不在队列中,按顺序显示,而是使用不同的线程显示。
在 Milsim 的案例中,问题正是这样,显然,他使用任务来显示声音,但它们不是在不同的线程中发出的。他使用 IAsyncAction
解决了他的问题。
关于c++ - XAudio2 延迟声音 - 播放多个声音时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18669047/