如何从命令行更改默认音频设备?


102

Ubuntu的桌面gui非常适合更改音频设置(系统->首选项->声音),例如默认的输入/输出设备和设置音量。

但是,我希望能够从命令行执行这些操作。gui在后台使用什么工具?

Answers:


117

您可以使用pacmdpactl命令通过命令行彻底控制PulseAudio 。有关选项,请参见手册页或PulseAudio上的Wiki :

pacmd list-sinks(或pactl list short sinks)表示可能的接收器的名称或索引号

pacmd set-default-sink "SINKNAME" 设置默认输出接收器

pacmd set-default-source "SOURCENAME" 设置默认输入

pacmd set-sink-volume index volume

pacmd set-source-volume index volume用于音量控制(65536= 100%,0=静音;或更直观些0x10000= 100%,0x7500= 75%,0x0= 0%)

以及许多其他CLI选项。


注意:仅当禁用流目标设备读取时,才能通过命令行界面更改输出接收器。这可以通过将相应的行编辑/etc/pulse/default.pa为:

load-module module-stream-restore restore_device=false

有关如何执行此操作的详细说明,以及有关在播放过程中如何更改接收器的说明,请参见此答案


2
Pulseaudio发生了变化,pacmd list-sinks我认为现在应该第一个命令
Anwar 2012年

如何将输出设备设置为默认输入设备?我有一个Line6 ToneportUX1(用于模制吉他音色),它在Ubuntu的声音控制面板中显示为输出设备,但它应该是输入设备。
罗布

@MikeDtrick:这些命令无法完成。我没有使用USB设备的经验,但是我相信这可能是您可能遇到的配置文件/驱动程序/端口/ ALSA问题。设备在ALSA中被识别为输入吗?
塔卡特

我刚刚开始使用AlsaMixer,所以可能不会有太大帮助。在/proc/asound/cards/其下将Toneport列为USB设备,并在/proc/asound/pcm其下显示playback 1: capture 1。运行alsamixer并单击[f2] 后,就全部完成了。
罗布

如果您pacmd list-sinks仅列出一个接收器,但在“系统设置”>“声音”中可以看到多个输出设备,请检查以下答案:askubuntu.com/questions/63599/…–
Severo Raz

3

是的,终端中有alsamixer类型

替代文字

按 ,

F1-帮助

F2-系统信息

F6-选择声卡

Esc-退出菜单


2
alamixer似乎对改变音量很有帮助。如何更改默认设备?
paleozogt

我仅将其用于调节音量。尝试按F6键,让我知道是否有帮助。
karthick87

28
F6让您选择要操作的声卡,但不会更改默认值。
paleozogt

1
pavucontrol

不是实际的Ubuntu音量控制,而是更好的!它使您可以控制默认设备,甚至每个应用程序/流的设备。

您必须实际正在录制/播放该应用程序,该应用程序才能显示在“播放”或“录制”选项卡中,但是一旦为该应用程序选择了设备,它似乎就会永远记住它。

另外,(在旁注中)对于旧的(非脉冲)应用程序,请在之后运行它们padsp,例如:

padsp some_old_app

掌控


3
问题是如何从命令行更改音频设备。这不是命令行的应用程序。
xorinzor

此外,pavucontrol它仅显示已连接的设备,而不显示已配对但已断开连接的设备。
cipricus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.