web-dev-qa-db-ja.com

pavucontrolは、ヘッドフォンが接続されているときにライン出力が接続されていないことを示します

スピーカーをライン出力ジャックに接続しています。ヘッドホンをフロントヘッドホンジャックに接続すると、スピーカーがミュートになり、期待どおりにヘッドホンでサウンドが再生されます。ただし、pavucontrolを開いて、手動でLine Out(プラグが抜かれていると表示されている)にサウンドを送信することを選択すると、ヘッドフォンはミュートされますが[〜# 〜] not [〜#〜]スピーカーから音声を再生します。

pactlpacmdのさまざまな順列を、set-sink-portやその他のコマンドで試しましたが、毎回、何も変わらないか、スピーカーとヘッドフォンの両方が無音になっています。 pavucontrolでやろうとしたときです。

TL; DR;ヘッドホンとスピーカーの両方が接続されているときに切り替えられるようにしたいのですが、ヘッドホンが接続されているときはスピーカーは常に無音です。

KDE5デスクトップで最新のFedora23を実行しています。

4
BenjiWiebe
  1. Alsamixerを開きます。次に、F6を押してサウンドカードを選択します。ほとんどの場合、PCHで終わります。
  2. 自動ミュートオプションが見つかるまで右にスクロールします。
  3. 上矢印または下矢印を押して無効にします。 Escキーを押して、alsamixerを終了します。 alsamixer settings

次のスクリプトを使用して自動化します。

#!/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スピーカー用。

8
Vishal Biswas