Linux下C/C++的最佳音频播放api?

Posted

技术标签:

【中文标题】Linux下C/C++的最佳音频播放api?【英文标题】:Best audio playback api for C/C++ under Linux? 【发布时间】:2009-04-21 11:55:00 【问题描述】:

什么是适用于 Linux 的 C/C++ 的最佳音频播放 api,最好是免费/开源的?我需要它用于嵌入式 Linux,所以我正在寻找尽可能轻量级且依赖项不多的东西?

【问题讨论】:

【参考方案1】:

这取决于您所说的“音频”是什么意思。如果您只想播放原始 PCM 样本数据,请查看直接使用 ALSA API。如果您想解码和播放编码的声音,您当然需要查看支持所需格式的库。

【讨论】:

谢谢。我主要是想播放 .wav 文件 播放 .wav 是 libcanberra 的工作,它在这个领域取代了 esound 并带来了更好的功能和可扩展性。【参考方案2】:

PulseAudio 已被主要发行版采用,看起来它是即将推出的 Linux 音频标准,因为它比 ALSA 更灵活。这是一篇关于 why you should care about PulseAudio 的文章(以及如何开始)。

【讨论】:

而且脉搏不必很大,IIRC。它的配置脚本(我认为)允许编译出大部分。【参考方案3】:

SDL 真的很不错

【讨论】:

但是,SDL 音频/混合 API 确实效率低下,并且没有利用音频后端的混合能力。【参考方案4】:

如果你在做嵌入的东西,我会直接使用 ALSA(虽然它很复杂)。我绝对不会使用 PulseAudio 之类的东西,因为它很重并且只添加了另一层(整个单独的服务器)。 SDL 可能没问题,但它主要用于游戏。

【讨论】:

不知道这是怎么被否决的。嵌入式 Linux 可能非常小。在不需要它的系统上抛出像 PulseAudio 这样的东西只会增加所需的 RAM 数量,从而增加 BOM 成本。【参考方案5】:

根据您的用例,我会查看gstreamer 或STK。

【讨论】:

以上是关于Linux下C/C++的最佳音频播放api?的主要内容,如果未能解决你的问题,请参考以下文章

Windows 中低级音频的最佳 API?

Android 音频播放——AudioTrack直接播PCMMediaPlayer播媒体文件可以是audio

在 HTML5 中使用音频标签时如何避免主播重新播放音乐?

哪个 API 从 ios 和 osx 中的缓冲区播放音频?

HTML5音频视频总结

如何保护通过 Media Source Extension API 播放的视频文件?