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

Cross Platform (C/C++) Audio Library for MP3, AAC, WAV

本文关键字:C++ 音频 跨平台 AAC MP3 WAV 适用于      更新时间:2023-10-16

我正在努力寻找一个跨平台的音频库,它将具有以下能力(按重要性排序):

  • 完全支持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,但更以音频为中心。我已经使用它好几年了,它的维护和编写都很好。