我已将扬声器插入 Line Out 插孔。当我将耳机插入前置耳机插孔时,扬声器会静音,并且声音会通过耳机播放,这符合预期。但是,当我打开pavucontrol
并手动选择将声音发送到 Line Out(列为未插入)时,它会将耳机静音(符合预期),但不是通过扬声器播放音频。
我尝试过pactl
和pacmd
以及set-sink-port
和其他命令的许多不同排列,每次都没有任何变化,或者扬声器和耳机都静音,就像我尝试用 执行时一样pavucontrol
。
TL;DR;我希望能够在耳机和扬声器都插入的情况下在它们之间切换,但是当我的耳机插入时扬声器始终保持静音。
我正在运行带有 KDE 5 桌面的最新 Fedora 23。
答案1
使用以下脚本来实现自动化。
#!/bin/sh
NAME=$(basename -- "$0")
command -v amixer >/dev/null 2>&1 || { echo >&2 "amixer not installed"; exit 1; }
command -v pacmd >/dev/null 2>&1 || { echo >&2 "pacmd not installed"; exit 1; }
amixer -c1 sset "Auto-Mute Mode" Disabled > /dev/null
if [ -z $1 ]; then
echo -e "Usage:\nFront Speakers\t: $NAME 0\t\nHeadphones\t: $NAME 1\nBoth Speakers\t: $NAME 2"
exit 1
elif [ $1 -eq 0 ] 2> /dev/null; then
pacmd set-sink-port 1 analog-output-lineout
amixer -c1 set Headphone 0% > /dev/null
amixer -c1 set Front 100% > /dev/null
elif [ $1 -eq 1 ] 2> /dev/null; then
pacmd set-sink-port 1 analog-output-headphones
amixer -c1 set Front 0% > /dev/null
amixer -c1 set Headphone 100% > /dev/null
elif [ $1 -eq 2 ] 2> /dev/null; then
pacmd set-sink-port 1 analog-output-headphones
amixer -c1 set Front 100% > /dev/null
amixer -c1 set Headphone 100% > /dev/null
else
echo -e "Invalid argument"
exit 1
fi
这假设您使用的卡编号为 1。此外,它假设您的 PulseAudio 端口名为模拟输出线路输出和模拟输出耳机将其保存为类似演讲者.sh并使用 chmod 设置执行位。
运行speakers.sh 1
耳机和speakers.sh 0
扬声器。