0

当我在这些内核文档中遇到 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。

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

4

1 回答 1

0

ALSA 项目 - C 库参考

前言部分指出:

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

API 使用部分指出:

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

于 2021-12-14T05:57:16.720 回答