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?的主要内容,如果未能解决你的问题,请参考以下文章