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

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

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

答案1

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

一对外部 USB 扬声器 + 内置扬声器的示例,正​​在播放音乐。

$ 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 接收器?

相关内容