关于 c:如何像 SDL_Mixer 那样播放多种声音,但在 SDL2 中是原生的?

How to play multiple sounds like SDL_Mixer does, but natively in SDL2?

在我的最后一个问题中,我想出了如何在 SDL2 中本地播放声音:如何降低 linux 上 wav 文件的质量和规格

我现在的问题是想模仿 SDL_Mixer 所做的 1 音乐和许多声音的事情。一个理论是我可以使用不同的通道、单声道、立体声等来播放多种声音。另一种理论是深入研究 SDL 音频功能并尝试找到播放多种声音的方法。我认为即使使用线程也可以工作,但问题是我发现覆盖默认音频设备似乎会删除我的旧声音。

有没有人这样做过,或者有任何想法在 SDL2 中使用带有 WAV 文件的 SDL_OpenAudioDevice 播放带有背景音乐的多种声音?


深入研究了一下代码,答案是不使用 SDL_memset(stream, 0, len);如此处所述,它正在使声音静音。乍一看,您可以在不覆盖的情况下混入其他声音。如果我发现答案有变化,将在稍后发布。