问题描述
我可能不理解核心概念,在这种情况下纠正我,如果我错了。
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音量控制应用。
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。