如何使用终端选择音频输出设备?

我有一个数字耳机和一对模拟扬声器。 有没有办法让我在Ubuntu的终端之间切换它们? 我问这是因为我想为这个开关创建一个键盘快捷键,使其比使用鼠标进行音频设置的繁琐任务更简单。

当然,你可以使用“pactl”和“pacmd”命令。

一对外部USB扬声器+内置扬声器的示例,带有音乐播放function。

$ pactl list sinks short | awk -F '\t' '{print $1,$2,$5}' # Print available outputs 0 alsa_output.pci-0000_00_1b.0.analog-stereo RUNNING 1 alsa_output.usb-Logitech_Logitech_Z-5_Speakers-00-Speakers.analog-stereo SUSPENDED 

索引为0的第一个是内部说话,音乐在此接收器上运行。 另一个索引为1的是外部USB扬声器。

 $ pactl stat | grep Sink # Show the current output device (it's the internal speaker) Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo $ pacmd set-default-sink 1 # Make the external USB speaker as desired output device. 

如果你在转换期间没有做任何事情,你可以在这里停下来。

(注意,为了确保它真的有效,最好用播放的东西来执行此操作,并按如下方式移动流。)

如果您正在播放某些内容,您会发现音乐仍在旧设备上运行,您必须将其移动到所需的设备:

 $ pactl list sink-inputs | grep 'Input' # Get the stream ID Sink Input #23 $ pacmd move-sink-input 23 1 # Move it to the USB speaker 

瞧! 你可以根据这些来编写脚本。

参考: 如何在播放期间使用“pacmd set-default-sink”更改pulseaudio接收器?