插入耳机后,pavucontrol 显示线路输出未插入

插入耳机后,pavucontrol 显示线路输出未插入

我已将扬声器插入 Line Out 插孔。当我将耳机插入前置耳机插孔时,扬声器会静音,并且声音会通过耳机播放,这符合预期。但是,当我打开pavucontrol并手动选择将声音发送到 Line Out(列为未插入)时,它会将耳机静音(符合预期),但不是通过扬声器播放音频。

我尝试过pactlpacmd以及set-sink-port和其他命令的许多不同排列,每次都没有任何变化,或者扬声器和耳机都静音,就像我尝试用 执行时一样pavucontrol

TL;DR;我希望能够在耳机和扬声器都插入的情况下在它们之间切换,但是当我的耳机插入时扬声器始终保持静音。

我正在运行带有 KDE 5 桌面的最新 Fedora 23。

答案1

  1. 打开 alsamixer。然后按F6选择您的声卡,最有可能以 PCH 结尾。
  2. 向右滚动直到找到自动静音选项。
  3. 按向上或向下箭头将其禁用。按 Esc 退出 alsamixer。 alsamixer 设置

使用以下脚本来实现自动化。

#!/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扬声器。

相关内容