跨平台(C/C++)音频库,支持MP3、AAC、WAV。

8
我正在寻找一个跨平台音频库,它应具有以下功能(按重要性排序):
  • 完全支持Windows、Mac和Linux
  • C/C++ API
  • 免费/便宜但商业上可行
  • MP3支持
  • AAC支持
  • WMA支持
  • FLAC支持
  • OGG支持
  • 最好能够支持ARM Linux
  • 开源
我已经找到了一些东西,比如OpenAL、libao、Bass等等,但它们似乎都会有操作系统或编解码器的限制。在大多数情况下,MP3和AAC支持是必需的,因为我正在开发一个媒体播放器,并希望它支持这些常见格式。
有什么建议吗?

请参见https://dev59.com/33NA5IYBdhLWcg3wWseK。 - AShelly
3个回答

4

您可以查看 GStreamerFFmpeg

编辑

如果您愿意使用Qt,那么一定要检查Qt MultimediaKit, 它是Qt Mobility项目的一部分。 Phonon正在逐渐淡出,因为Qt正在投资于MultimediaKit来替换它。

这个例子展示了如何进行简单的音频播放。这个例子展示了如何创建一个多媒体播放器。这个例子展示了一个更高级的音乐播放器,使用Qt和QML。


从外观上看,MultimediaKit 只适用于移动设备。我正在为桌面开发一些东西。这是正确的吗? - Adam Haile
错误的。我在几个桌面产品上使用QtMultimediaKit(Windows / Linux / Mac OS X)。;D - karlphillip
奇怪...我甚至无法将媒体播放器示例编译为桌面应用程序。我必须问一下,你提到的这些产品是否公开可用? - Adam Haile
它们全部都是开源的(FFmpeg,GStreamer,Qt,Qt 多媒体套件),你可以下载源代码并在电脑上编译它们。 - karlphillip
很遗憾,我没有任何可以展示的东西,它们都是私人项目。 - karlphillip
显示剩余2条评论

1

试用JUCE。它在某些方面类似于Qt,但更加注重音频。我已经使用它几年了,而且它得到很好的维护和编写。


1
我不确定您是否计划使用像Qt这样的框架。它有一个名为"Phonon"的库,也非常好用。它是建立在相应的本地媒体框架上构建的,因此在Mac上是QuickTime,在Windows上是Windows Media Player,在Linux上是GTK+。
此外,PulseAudio似乎也很有前途,而且无需任何框架。

Qt实际上是我的第一选择...我会研究一下的。 - Adam Haile
我已经使用Phonon框架制作了一些应用程序。对于所有基本功能,它绝对是很棒的,并且自动支持QuickTime/WMP/GTK+支持的所有编解码器。 - guitarflow
有什么我需要知道的吗?很想看一些例子。 - Adam Haile
不好意思,所有项目都是我们公司的内部项目。最近的一个是一款听力测试软件。如果您有任何问题,请联系我。 - guitarflow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接