6

我正在寻找一个简单的库来输出音频。我希望它满足以下标准:

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

在我的搜索中,我一定遇到了两打不同的音频库,所有这些都没有完全满足这些标准......

4

4 回答 4

3

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

于 2012-08-20T23:28:19.213 回答
1

我立即想到的一些候选人是:

不过,您可能已经看过这些并消除了它们。您能否提供更多关于您从考虑中排除的库的详细信息以及为什么?这将有助于缩小我们的建议范围。

于 2012-08-20T23:12:56.673 回答
1

您可能想查看SDLSDL_mixer。这是一个很好的教程。我使用了 SDL_mixer,它可以轻松播放背景声音或音乐并同时播放多个声音,而无需编写自己的声音样本混音器。

于 2012-08-20T23:21:29.903 回答
1

我最终使用了 PortAudio(非常低级、灵活的许可证)并自己编写了一个混音器。有关其他人关于编写自定义混音器的提示,请参阅我在 C++ 论坛上创建的这个主题。这一点都不难,真的;我很惊讶有这么多混音器库。有关 WAV 格式(带有 44 字节标头的可流式传输的原始音频数据)的详细信息,请参阅

于 2012-08-26T06:20:00.020 回答