【问题标题】:ALSA Kernel API is different from the asoundlib API?ALSA Kernel API 与 asoundlib API 不同?
【发布时间】:2022-01-17 10:39:37
【问题描述】:

当我在以下内核文档中遇到 ALSA(高级 linux 声音架构)及其 api 时,我正在阅读如何从 linux 内核播放音频:https://www.kernel.org/doc/html/latest/sound/kernel-api/alsa-driver-api.html

但似乎大多数尝试在 linux 中播放音频的人都使用 asound 库,通常包含在内。

#include <alsa/asoundlib.h>

但是当我在这里查看asoundlib api 时:https://www.alsa-project.org/alsa-doc/alsa-lib/ 它似乎没有与我上面链接的内核 api 相同的功能。此时我很困惑,因为我不确定在播放音频时何时调用内核 api 与 asoundlib api。

这方面的一个很好的例子是asoundlib api 有一个名为snd_pcm_open 的函数来创建一个句柄并连接到一个音频接口。我无法在内核文档中找到此功能。所以我想知道,asoundlib 是调用内核 api 函数还是这两个 api 都是正交的?如果它们是正交的,那么asoundlib 的内核调用是什么?

【问题讨论】:

    标签: c linux kernel alsa libasound


    【解决方案1】:

    ALSA project - the C library reference

    前言部分指出:

    高级 Linux 声音架构 (ALSA) 带有一个内核 API 和一个 API。 ...

    API 使用部分指出:

    应用程序程序员应该使用库 API 而不是内核 API。该库提供了内核 API 的 100% 功能,但在可用性方面进行了重大改进,使应用程序代码更简单、更美观。此外,未来的修复或兼容性代码可能会放在库代码中,而不是内核驱动程序中。

    【讨论】:

      猜你喜欢
      • 2020-01-12
      • 2016-04-21
      • 2021-01-15
      • 2016-06-16
      • 1970-01-01
      • 2012-08-31
      • 2013-01-02
      • 2015-04-24
      • 2012-08-21
      相关资源
      最近更新 更多