XAudio2延迟声音 - 播放多个声音时

时间:2013-09-07 02:21:33

标签: c++ audio windows-8 xaudio2

我正在使用XAudio2在我的游戏中播放声音。我有大约16个源声音,其中3个是循环效果,需要像背景音乐一样播放。我有另一种背景音乐,它会定期开始播放(一旦完成,它会等待1分钟并重新开始)。每当必须播放另一个效果,如按钮点击,枪击等,我搜索可用的源并将缓冲区附加到它并开始播放。

我的问题是,一旦背景音乐开始播放,只会播放循环效果,并且不会播放需要在游戏动作(例如按钮点击)上播放的其他效果。一旦背景音乐停止,所有这些延迟效果都会播放。此外,如果我使用一个循环效果(而不是3),所有这些都以正确的顺序播放。

我正在使用子混音语音效果,背景音乐直接提交给母带语音。

当我被困在这里时,有人可以帮助我吗

1 个答案:

答案 0 :(得分:1)

每当打算在同一时间播放不同的声音时,他或她应该确保这些声音不在队列中,按顺序显示,但它们是使用不同的线程显示的。

在Milsim的案例中,问题恰恰就是这个,显然,他使用任务来显示声音,但它们不是在不同的线程中发布的。他使用IAsyncAction解决了他的问题。