![使用控制台命令选择声卡](https://linux22.com/image/1543445/%E4%BD%BF%E7%94%A8%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%91%BD%E4%BB%A4%E9%80%89%E6%8B%A9%E5%A3%B0%E5%8D%A1.png)
是否可以在命令行中使用 cinnamon-settings 应用程序更改默认声卡?默认声卡似乎未在 dconf 中设置。
我正在尝试编写一个在 HDMI 和模拟声音输出之间切换的脚本。
答案1
我认为你正在寻找
pacmd set-default-sink <sink_name|index>
概述如下 https://askubuntu.com/questions/690711/change-sound-output-from-command-line 和https://askubuntu.com/questions/14077/how-can-i-change-the-default-audio-device-from-command-line
您可以使用以下方式获取可用索引
pacmd list-sinks|grep index|awk '{print $NF}'
如果您想控制音量,您可以在命令行中使用 alsamixer (ncurses) 或 amixer 来进行。
如果你要使用 pulseaudio 设置,那么
cp -i /etc/pulse/default.pa ~/.config/pulse/
将为您提供更安全的编辑副本
pulseaudio -k #should restart pulseaudio after you change settings.
对于您的脚本,您可能需要检查可用的音频速率是否与您的接收设备兼容:
grep rates $(grep -ci hdmi /proc/asound/card*/codec#0|grep -v :0|sed 's,:.$,,'|head -n1)
并根据每张卡所附的配置文件
pactl --server "unix:/run/user/$(id -u)/pulse/native" set-card-profile 1 output:analog-stereo
和
pactl --server "unix:/run/user/$(id -u)/pulse/native" set-card-profile 0 output:hdmi-stereo
可能有助于创建有用的变量。看起来有人已经尝试做你正在做的事情:
但是其中一些变量要么是 archlinux 特有的,要么是过时的。(尽管它们触发脚本的路径可能会有所帮助。)