Ubuntu使用ALSA和PulseAudio来控制声音的输入和输出。
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
,即基于GTK的pulseaudio音量控制应用程序。
ALSA或PulseAudio中有任何一个正在运行吗?
ALSA和PulseAudio都配备了命令行应用程序,可以打印出我们音频系统的状态。
PulseAudio:
pactl list
ALSA:
aplay -l
如果声音系统没有运行,两者都会出错。ALSA将与内核一起加载,PulseAudio稍后启动。如果不是这种情况,我们可以从终端手动启动PulseAudio:
pulseaudio [options] ## option -D starts the daemon
如果我们遇到音频问题,我建议在我们进一步解决音频问题之前阅读由David Henningsson撰写的
不应该做的事情。
pactl info | grep 'Server Name'
)。 - Pablo Bianchi