スピーカーをライン出力ジャックに接続しています。ヘッドホンをフロントヘッドホンジャックに接続すると、スピーカーがミュートになり、期待どおりにヘッドホンでサウンドが再生されます。ただし、pavucontrol
を開いて、手動でLine Out(プラグが抜かれていると表示されている)にサウンドを送信することを選択すると、ヘッドフォンはミュートされますが[〜# 〜] not [〜#〜]スピーカーから音声を再生します。
pactl
とpacmd
のさまざまな順列を、set-sink-port
やその他のコマンドで試しましたが、毎回、何も変わらないか、スピーカーとヘッドフォンの両方が無音になっています。 pavucontrol
でやろうとしたときです。
TL; DR;ヘッドホンとスピーカーの両方が接続されているときに切り替えられるようにしたいのですが、ヘッドホンが接続されているときはスピーカーは常に無音です。
KDE5デスクトップで最新のFedora23を実行しています。
次のスクリプトを使用して自動化します。
#!/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ポートの名前はanalog-output-lineoutおよびanalog-outputであると想定しています。 -ヘッドフォン。 speakers.shやchmodのようなものとして保存し、実行ビットを設定します。
実行speakers.sh 1
ヘッドフォン用およびspeakers.sh 0
スピーカー用。