简单的C音频库

时间:2012-08-20 22:37:36

标签: c audio static-libraries wav

我正在寻找一个简单的库来输出音频。我希望它符合这些标准:

  • 根据LPGL / zlib / MIT或类似情况获得许可 - 我将在独立商业应用程序中使用它,而我没有钱购买许可证。
  • 用C语言编写,但C ++没问题。
  • 跨平台(Windows,Linux,也许是OSX)
  • 能够在内存中读取某种音频文件(我更喜欢WAV或OGG,但我很乐意在需要时使用不太流行的格式)(我已经看过使用memfile结构和用户定义的I / O回调)。我需要将文件放在内存中,因为我将所有资源放入.zip存档,并使用another library将这些存档文件加载到内存中。
  • 支持同时播放多个声音,最多8个左右即可。
  • 我真的想拥有源代码或静态库(MinGW / GCC lib???.a),但如果没有别的可用,我将使用共享库。

我必须在我的搜索中遇到二十多种不同的音频库,所有这些都不符合这些标准......

4 个答案:

答案 0 :(得分:2)

我会推荐PortAudio + libsndfile。非常受欢迎的组合,符合您的要求。许多其他软件应用程序使用,包括大胆。

答案 1 :(得分:1)

我想到的一些候选人是:

你可能已经看过这些并消除了它们。您能否详细介绍一下您已经考虑过的库以及原因?这将有助于缩小我们的建议范围。

答案 2 :(得分:1)

您可能希望查看SDLSDL_mixer。这是一个很好的tutorial。 我已经使用了SDL_mixer,它可以轻松播放背景声音或音乐,并且无需编写自己的声音采样混音器即可播放多个同步声音。

答案 3 :(得分:1)

我最终使用了PortAudio(非常低级,灵活的许可证)并自己编写了一个混音器。有关编写自定义调音台的其他人的提示,请参阅this topic i made on the C++ forums。真的,这一点都不难;我很惊讶那里有很多混音器库。有关WAV格式(具有44字节标题的准备流式原始音频数据)的细分,请参阅this