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

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

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

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

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

ALSA

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

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

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

脉冲音频

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

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

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

应用程序/桌面集成

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

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

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

我们可能必须安装其他软件包,例如pavucontrol 安装pavucontrol ,基于pulseaudio GTK的音量控制应用。

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

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

  • pulseaudio的:

     pactl list 
  • ALSA:

     aplay -l 

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

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

如果我们有音频问题,我建议阅读David Henningsson撰写的关于我们不应该做的事情的post,我们会进一步调试我们的音频问题 。