当前位置: 首页>>技术问答>>正文


如何默认使用alsa或pulse-audio? (切换到i3-wm)

, , , ,

问题描述

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

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

我需要知道的原因是我试图从统一切换到i3-wm。在设置i3时,我发现我没有音频,而是来到了this thread。它指定了各种选项,用于将我的笔记本电脑音量上下键绑定到它们的功能,在我修改了一些选项后,我得到了非常沙哑的音频,这就是为什么(我假设)我需要知道我实际使用的是什么。

最佳解决思路

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

ALSA

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

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

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

Pulse Audio

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

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

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

应用程序/桌面集成

可以从Unity /GNOME桌面运行的应用程序(例如音量控制小程序)进一步控制Ubuntu声音系统。

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

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

我们可能需要安装其他软件包,例如pavucontrol,脉冲音频GTK-based音量控制应用。

sound,pulseaudio,alsa,i3-wm,ubuntu

ALSA或PulseAudio中的任何一个都在运行吗?

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

  • pulseaudio的:

    pactl list
    
  • ALSA:

    aplay -l
    

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

pulseaudio [options]  ## option -D starts the daemon

如果我们有音频问题,我建议阅读David Henningsson撰写的有关我们不应该做的事情的帖子,我们会进一步了解debug our audio issue

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1876.html,未经允许,请勿转载。