使用 Debian (LMDE 5) Bullseye,我无法使用 pacmd 更改音频接收器,就像使用 Ubuntu 一样。但是,配合音量控制应用程序/GUI 能够更改接收器。
它必须使用较低级别或其他方法,因为 Bullseye 中默认情况下不会运行pulseaudio。启动pulseaudio后,pacmd命令运行时没有任何错误,但音频继续从GUI中的接收器集播放。
我已经编辑了/etc/pulse/default.pa
这一行,据我所知,它应该防止脉冲从 pacmd 发出时逆转更改:
load-module module-stream-restore restore_device=false
在 Ubuntu 中适用于我的声卡的命令是:
#change to analog stereo
pacmd set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo
#change to hdmi
pacmd set-card-profile alsa_card.pci-0000_00_1b.0 output:hdmi-stereo-extra1+input:analog-stereo
我的问题类似于: 使用终端更改输出(接收器),但问题没有有效的建议。
有没有人在最近的 Debian 中通过脚本成功更改接收器?
答案1
要通过 Debian Bullseye 中的脚本更改声音接收器(音频输出设备),您可以使用pacmd
命令行工具,该工具是 PulseAudio 声音服务器的一部分。这是分步指南:
pacmd
如果尚不可用,请安装必要的软件包。您可以使用以下命令来安装它:sudo apt-get install pulseaudio-utils
通过运行以下命令确定可用的声音接收器:
pacmd list-sinks | grep -e 'index:' -e 'name:'
此命令将列出可用的接收器及其索引号。记下您要切换到的声音接收器的索引号。
change_sound_sink.sh
使用您选择的文本编辑器创建脚本文件,例如,nano change_sound_sink.sh
在脚本文件中,输入以下行:
#!/bin/bash # Set the desired sink index SINK_INDEX=my_sink_index # Change the default sink to the desired index pacmd set-default-sink $SINK_INDEX # Move existing streams to the new sink pacmd list-sink-inputs | awk '/index:/{print $2}' | while read -r input; do pacmd move-sink-input "$input" "$SINK_INDEX" done
替换
my_sink_index
为您在步骤 3 中获得的所需声音接收器的索引号(例如0
、1
等)。保存脚本文件 ( Ctrl+ Oin
nano
) 并退出文本编辑器 ( Ctrl+ Xinnano
)。通过运行以下命令使脚本文件可执行:
chmod +x change_sound_sink.sh
使用以下命令运行脚本:
./change_sound_sink.sh
这会将声音接收器更改为指定索引,并将任何现有音频流移动到新接收器。
运行脚本后,声音输出应切换到所需的接收器。您可以根据需要将此脚本合并到其他自动化或控制系统中。