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

标签 c++ audio windows-8 xaudio2

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

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

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

谁能帮帮我,因为我被困在这里

最佳答案

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

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

关于c++ - XAudio2 延迟声音 - 播放多个声音时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18669047/

相关文章:

javascript - 如果 <video> 正在播放停止 <audio>

javascript - Windows 商店应用程序的语言选择 : C++ or javascript ?

.net - Windows Metro 应用程序中没有 P2P?

c++ - 三角形中的矩形

c++ - fatal error : QtGui/QApplication: No such file or directory|

c++ - 列出所有打开的文件

c++ - 有一个新的转换运算符而不修改源

Android版AVAudioPlayer的averagePowerForChannel

iPhone设置音量以仅播放应用程序的声音

windows-8 - VB6应用程序通过winsock发送UDP广播消息 - 仅每隔一条消息发送一次