简而言之,ALSA 为 Linux 中的音频提供了低级基础设施,而 Pulse 提供了更高(更适合桌面)的级别。就大多数主流 Linux 发行版(包括 Ubuntu)而言,OSS 已经过时了。
您询问系统调用。您不通过系统调用在 Linux 中使用音频。如果您选择直接使用 ALSA(对于简单的音频播放来说不是一个好主意),您将使用其用户空间库 libasound2 (甚至 OSS 也将通过 /dev/ 文件而不是系统调用使用)。
如果您仅针对现代 Linux 发行版,请考虑使用 Pulse API。如果您想要更灵活地了解您的目标发行版以及跨平台支持的潜力,您可以尝试一个抽象出特定于操作系统的音频 API 的库 - 例如,PortAudio (http://www.portaudio.com /)。
如果您从未进行过任何音频开发,您可能会发现像 PortAudio 这样的库比直接处理 PulseAudio 更容易使用。
在Linux上,您有很多 Linux音频API可供选择.这是我几年前制作的图表,演示了各种Linux音频API之间的关系.
但是,如果您只针对Ubuntu Linux并使用C/C++,并且您不需要任何太花哨的东西(只需要将原始PCM数据推到扬声器中),我建议使用PulseAudio并坚持"简单" "API.这里可以找到一个简单的例子.这是获得概念证明工作的最小阻力的道路.
| 归档时间: |
|
| 查看次数: |
7111 次 |
| 最近记录: |