用于MP3,AAC,WAV的跨平台(C / C ++)音频库

我正在尝试找到一个具有以下function的跨平台音频库(按重要性排序):

  • 完整的Windows,Mac,Linux支持
  • C / C ++ API
  • 免费/便宜但商业上可行
  • MP3支持
  • AAC支持
  • WMA支持
  • FLAC支持
  • OGG支持
  • ARM Linux支持会很好
  • 开源

我发现了一些东西,比如OpenAL,libao,Bass等,但它们似乎都有操作系统,编解码器或两者的限制。 在大多数情况下,MP3和AAC支持是必须的,因为我正在使用媒体播放器,并希望它支持这些常见格式。

有什么建议?

你可以看看GStreamerFFmpeg

编辑

既然您愿意使用Qt,那么您一定要查看Qt MultimediaKit ,这是Qt Mobility项目的一部分。 Phonon正逐渐消失,因为Qt正在投资MultimediaKit来取代它。

此示例显示如何进行简单的音频播放。 此示例显示如何创建多媒体播放器。 此示例使用Qt和QML显示更高级的音乐播放器。

我不知道你是否打算使用像Qt这样的框架。 这个有一个名为“Phonon”的库捆绑在一起,这也很棒。 它建立在相应的本机媒体框架上,因此Mac上的QuickTime,Windows上的Windows Media Player和Linux上的GTK +。

PulseAudio看起来很有希望没有任何框架。

试试JUCE 。 它在某些方面就像Qt,但更多以音频为中心。我已经使用它已有好几年了,并且维护和编写得很好。