【问题标题】:Cross Platform (C/C++) Audio Library for MP3, AAC, WAV用于 MP3、AAC、WAV 的跨平台 (C/C++) 音频库
【发布时间】:2012-02-29 05:23:05
【问题描述】:

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

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

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

有什么建议吗?

【问题讨论】:

标签: c++ c audio


【解决方案1】:

试试JUCE。它在某些方面类似于 Qt,但更以音频为中心。我已经使用它几年了,它的维护和编写都很好。

【讨论】:

    【解决方案2】:

    你可以看看GStreamerFFmpeg

    编辑

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

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

    【讨论】:

    • 从他看来,MultimediaKit 仅适用于移动设备。我正在为桌面做一些事情。对吗?
    • 错了。我在几个桌面产品(Windows/Linux/Mac OS X)上使用 QtMultimediaKit。 ;D
    • 奇怪...我无法让媒体播放器示例甚至编译为桌面。我总是要问,你提到的这些产品是否公开可用?
    • 它们都是开源的(FFmpeg、GStreamer、Qt、Qt Multimedia Kit),您可以下载源代码并在您的计算机中编译。
    • 我知道你想问about the license。我一直使用 Qt 和 Qt Mobility 的LGPL version。所以不,我的产品不是开源的。
    【解决方案3】:

    我不知道您是否打算使用像 Qt 这样的框架。 它捆绑了一个名为“Phonon”的库,这也非常好。 它建立在相应的原生媒体框架之上,例如 Mac 上的 QuickTime、Windows 上的 Windows Media Player 和 Linux 上的 GTK+。

    PulseAudio 在没有任何框架的情况下看起来也很有前途。

    【讨论】:

    • Qt 实际上是我的第一选择...我会调查一下。
    • 我已经使用 Phonon 框架制作了一些应用程序。对于所有基本的东西,它绝对很棒,它自动支持 QuickTime/WMP/GTK+ 支持的所有编解码器。
    • 有什么我想知道的吗?希望看到一些例子。
    • 不,抱歉。都是我公司的内部项目。最近的一个是听力测试软件。如果您还有任何问题,请联系我。
    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 2011-06-15
    • 2013-11-21
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多