用于播放/录制音频(.wav、.ogg)的 C++ 多平台库

Posted

技术标签:

【中文标题】用于播放/录制音频(.wav、.ogg)的 C++ 多平台库【英文标题】:C++ multiplatform library to playback /record audio (.wav, .ogg) 【发布时间】:2011-03-03 10:55:03 【问题描述】:

我有一个多平台应用程序并想添加音频注释功能。 我正在寻找音频播放/录音库:

多平台(Windows、Linux、Mac) 简单快速地集成到现有项目中 不要在 Windows 构建中使用 cygwin 具有 C++ 绑定

我看到了 gstreamer,但我觉得它对于我的简单用例来说太先进了

【问题讨论】:

【参考方案1】:

您查看SDL 了吗?那应该可以play OGG files和WAV files。

【讨论】:

【参考方案2】:

我使用过sox,但它目前似乎无法在 Mac 上录制。如果您可以在没有它的情况下从您的设备录制,那么它具有很好的文件处理功能。

PortAudio 用于备受瞩目的声音应用程序 Audiomulch。

我没有用过RtAudio,但我用过使用它的项目。它处理 JACK、CoreAudio、ALSA、OSS、DirectSound 和 ASIO。

libsndfile 是需要处理音频文件以替代 sox 的项目的常见依赖项。

【讨论】:

【参考方案3】:

我确定ffmpeg 符合要求。格式支持几乎是无限的,它已经证明了它的价值。不幸的是,它需要一个类似 UNIX 的 shell 来构建。虽然你不需要 Cygwin,但可以使用 MSYS,你可以找到最新的二进制发行版here。对于简单的音频(记录)功能来说,这可能有点过头了,但你提到了支持不同格式的能力。您不能使用 Visual C++ 编译器编译 ffmpeg,但是一旦库由 GCC 或其他符合 C99 的编译器构建,您就可以使用它。

【讨论】:

以上是关于用于播放/录制音频(.wav、.ogg)的 C++ 多平台库的主要内容,如果未能解决你的问题,请参考以下文章

求谷歌Chrome浏览器播放Wav格式音频的方法。

Android音频开发:录制音频(WAV及MP3格式)

Android音频开发:录制音频(WAV及MP3格式)

Android音频开发:录制音频(WAV及MP3格式)

音频流 C++ 服务器/客户端

基于C++实现的用于OpenAL的 .wav音频加载器