Raf*_*tes 2 sound command-line output
我有一个数字耳机和一对模拟扬声器。我有没有办法在 Ubuntu 的终端中在它们之间切换?我这么问是因为我想为这个开关创建一个键盘快捷键,使它比使用鼠标进入音频设置的繁琐任务更简单。
当然,您可以使用“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
Run Code Online (Sandbox Code Playgroud)
索引为 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.
Run Code Online (Sandbox Code Playgroud)
如果您在切换期间没有播放任何内容,您可以在这里停下来。
(请注意,为了确保它确实有效,最好在播放某些内容时执行此操作,并按如下方式移动流。)
如果您正在播放某些内容,您会注意到音乐仍在旧设备上运行,您必须将其移动到所需的设备:
$ 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
Run Code Online (Sandbox Code Playgroud)
瞧!您可以根据这些编写脚本。
参考:如何在播放过程中使用“pacmd set-default-sink”更改pulseaudio sink?