适用于MP3、AAC、WAV的跨平台(C/C++)音频库
Cross Platform (C/C++) Audio Library for MP3, AAC, WAV
我正在努力寻找一个跨平台的音频库,它将具有以下能力(按重要性排序):
- 完全支持Windows、Mac和Linux
- C/C++API
- 免费/便宜但在商业上可行
- MP3支持
- AAC支持
- WMA支持
- FLAC支持
- OGG支持
- ARM Linux支持会很好
- 开放源代码
我发现了一些东西,比如OpenAL、libao、Bass等,但它们似乎都有操作系统、编解码器的限制,或者两者兼而有之。在大多数情况下,MP3和AAC支持是必须的,因为我正在开发一个媒体播放器,希望它能支持这些常见的格式。
有什么建议吗?
您可以查看GStreamer和FFmpeg。
编辑:
既然您愿意使用Qt,那么您一定要查看Qt MultimediaKit,它是Qt Mobility项目的一部分。Phonon正在逐渐消失,因为Qt正在投资MultimediaKit来取代它
此示例显示如何进行简单的音频播放。此示例显示如何创建多媒体播放器。此示例显示了一个使用Qt和QML的更高级的音乐播放器。
我不知道您是否计划使用Qt这样的框架。它捆绑了一个名为"Phonon"的库,这也非常好。它是建立在相应的原生媒体框架上的,所以在Mac上是QuickTime,在Windows上是Windows media Player,在Linux上是GTK+。
PulseAudio在没有任何框架的情况下看起来也很有前景。
试试JUCE。它在某些方面类似于Qt,但更以音频为中心。我已经使用它好几年了,它的维护和编写都很好。
相关文章:
- 用c++阅读音频
- 为什么这个音频包络不能通过开关的情况?
- FFMpeg库:如何在音频文件中精确查找
- 需要反转音频步进公式
- 如何在音频处理中使用超能力时间拉伸类
- C++新手,想知道如何使用VS code 2019播放音频文件
- 如何暂停插孔音频客户端
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 将音频从浏览器流式传输到WebRTC本机C++应用程序
- 使用IMFSourceReader(Microsoft媒体基金会)进行音频流传输
- 大声音频无法播放
- 让 iaxClient 将音频发送到缓冲区而不是音频设备/从缓冲区获取音频
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 波形音频 - waveOutWrite 发出断断续续的声音
- WASAPI 共享模式:音频引擎预期的振幅是多少?
- 在Win7上,在默认端点上轮询音频会话有时会崩溃
- 媒体基金会:WavSink以比实时消耗率更快的速度处理音频-是否可以实时限制后台处理
- PJSUA在两个或多个不同的音频声卡之间切换
- 当直接渲染到WASAPI时,两个流中的一个流没有音频输出
- FFmpeg av_read_frame从音频流返回数据包