如何判断我默认使用的是 alsa 还是脉冲音频?(切换到 i3-wm)

Pau*_*ker 72 sound pulseaudio alsa i3-wm

我可能不理解核心概念,在这种情况下,如果我错了,请纠正我。

Ubuntu 带有两个不同的音频渲染服务器,pulse 和 alsa。Alsa 是脉冲的中间层吗?基本上我需要知道我正在使用哪一个。

我需要知道的原因是我试图从统一切换到 i3-wm。在设置 i3 时,我发现我没有音频并发现了这个线程。它指定了将我的笔记本电脑音量增大和减小键与其功能绑定的各种选项,在我修改了一些选项后,我得到了非常沙哑的音频,这就是为什么(我假设)我需要知道我实际使用的是哪个。

Tak*_*kat 105

Ubuntu 使用 ALSA 和 Pulseaudio 来控制声音输入和输出。

ALSA

ALSA 作为一个基于内核的系统,将您的声音硬件连接到操作系统。系统中的所有声卡都将使用驱动程序和卡特定设置进行控制。其中大部分是在引擎盖下完成的,无需用户干预。

此外,ALSA 还提供库和工具来控制我们的音响系统。我们大多数人可能遇到的工具可能是alsamixer,一个半图形终端应用程序,用于控制我们系统中所有卡和配置文件的音量和静音状态。

我们可以简单地使用 ALSA 向我们的声卡发出声音,而无需 PulseAudio 或任何其他声音服务器。

脉冲音频

在 ALSA 基础之上,PulseAudio 声音服务器提供了更多工具来更好地控制我们的声音系统。这是通过定义音量级别、声卡配置文件、输出接收器或输入源等的模块完成的,以便从大多数 Ubuntu 应用程序轻松访问。

与 ALSA 一样,PulseAudio 也旨在以尽可能少的用户交互运行。每当我们需要改变音量、平衡或输入/输出设备时,它就是我们或我们的应用程序调用的 PulseAudio 模块或应用程序。

PulseAudio 的专业替代品是JACK 音频服务器,它有更多选项可以与我们的声音硬件交互,并提供更好的低延迟支持。只有少数音乐制作应用程序希望 JACK 运行,这可以与 PulseAudio 并行完成。

应用程序/桌面集成

Ubuntu 声音系统还可以通过从 Unity/GNOME 桌面运行的应用程序进行控制,例如音量控制小程序。

任何给定的应用程序使用声音控制将取决于应用程序开发人员。有些应用程序将只使用 ALSA,有些需要 PulseAudio,有些需要 JACK。

因此,每当我们在 Ubuntu 上安装另一个桌面管理器时,我们可能会丢失用于控制声音的桌面特定应用程序,但 ALSA 和 PulseAudio 仍会在后台运行以进行声音控制。

我们可能需要安装额外的软件包,例如pavucontrol,基于pulseaudio GTK 的音量控制应用程序。

是否有任何 ALSA 或 PulseAudio 正在运行?

ALSA 和 PulseAudio 都带有命令行应用程序来打印我们的声音系统的状态。

如果音响系统没有运行,两者都会出错。ALSA 将与内核一起加载,PulseAudio 将在稍后启动。如果不是这种情况,我们可以从终端手动启动 PulseAudio:

pulseaudio [options]  ## option -D starts the daemon
Run Code Online (Sandbox Code Playgroud)

如果我们有音频问题,我建议阅读David Henningsson 写的关于我们在进一步调试音频问题之前应该做的事情帖子

  • @Takkat 惊人的解释,非常感谢。很长一段时间以来,我一直试图对 Linux 和 Ubuntu 中的音频系统有基本的了解。 (2认同)
  • 现在我们可以将 PipeWire 添加到等式中(`pactl info | grep '服务器名称'`) (2认同)