用于播放/录制音频(.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++ 多平台库的主要内容,如果未能解决你的问题,请参考以下文章