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

Posted

技术标签:

【中文标题】如何像 SDL_Mixer 那样播放多种声音,但在 SDL2 中是原生的?【英文标题】:How to play multiple sounds like SDL_Mixer does, but natively in SDL2? 【发布时间】:2016-06-13 10:54:36 【问题描述】:

在我的最后一个问题中,我想出了如何在 SDL2 中本地播放声音:How to lower the quality and specs of a wav file on linux

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于如何像 SDL_Mixer 那样播放多种声音,但在 SDL2 中是原生的?的主要内容,如果未能解决你的问题,请参考以下文章

在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件

将音乐作为 SDL_Mixer 块运行

SDL_Mixer 无法处理部分代码

SDL_Mixer 设置声音位置

如何修复“视频播放但在带有 expo 的 iOS 上没有声音”

SDL_Mixer 声音问题