HDMI 切り替え後も Linux Mint のボリューム メディア キーとトレイのボリューム コントロールを機能させる方法

HDMI 切り替え後も Linux Mint のボリューム メディア キーとトレイのボリューム コントロールを機能させる方法

通常、Acer Aspire E15 ラップトップに Linux Mint 19.3 x64 MATE を最近新規インストールした後、メディア キー (内蔵キーボードの Fn+矢印キー、または外付けキーボードの専用キーを使用) は音量の変更に正常に機能します。現在の音量レベルを示すモーダルがポップアップ表示され、音量を調整しないまましばらくすると消えます。また、デフォルトの音量コントロール トレイ アイコンは、スライダーをドラッグすると同じ音量レベルに影響します。

さて、スピーカーが内蔵されたHDMIデバイスを接続して、オーディオをスピーカーから出力したい場合があります。多くの場合、ソフトウェアオーディオソース(たとえばブラウザ)はすでに開かれており、その出力をHDMIに切り替える唯一の方法はそれなしブラウザを再起動する代わりに、デフォルトのサウンド アプレットに移動します。

サウンド設定アプレットでは、アナログステレオデュプレックスが有効で、HDMIが選択され無効になっている状態が示されています。

...アナログ出力をオフにし、HDMI 出力を HDMI に設定します。

問題は、これをやってしまうと(またはその逆、HDMIから始めてアナログステレオに戻した場合)、メディアキーが音量レベルに影響しなくなることです。(しかし、するレベルが変化することを表示するポップアップは表示されますが、実際に聞こえる内容には影響しません。)

また、ボリューム コントロール トレイ アプレットは、聞こえる音に影響を与えなくなりました。スライダーは視覚的にはまだ機能しますが、奇妙なことに、メディア キーによって生成されるポップアップから独立しているようです。その後、トレイ アプレットが完全に消えてしまうことがよくあります (クラッシュしたと思います)。

その時点で、音量を変更する唯一の (GUI ベースの) 方法は、上図のサウンド アプレットを開いて、そこにあるスライダーから調整することです。

私の主な質問は、説明されているようにオーディオ出力を切り替えた後、どうすればそれらを動作させ続けることができるかということです。

または、オーディオ出力の変更を強制するために説明した方法とは異なる方法を使用してこの問題を回避する方法がある場合、それも歓迎される回答です。

答え1

以下は、現在の音量を表示する優れたオンスクリーン表示がなくなるため理想的ではありませんが、トレイ アプレットが消えて、さまざまな音量コントロールが互いに切断されたように見えても、少なくとも確実に動作します。

次のようなスクリプトをどこかに作成します。

#!/bin/bash
CURVOL=`pacmd list-sinks | grep 'volume: [^0-9]' | sed 's/.* \([0-9]\{1,3\}\)\%.*/\1/'`
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
VOLCHANGE=`cat $DIR/volume-increment`
if (($CURVOL > (100 - $VOLCHANGE))) ; then
  pactl set-sink-volume @DEFAULT_SINK@ 100% ;
else 
  pactl set-sink-volume @DEFAULT_SINK@ +$VOLCHANGE% ;
fi

同じディレクトリに、volume-incrementこれをアクティブにするたびに変更したい絶対的なパーセンテージ音量を含む というファイルを作成します。たとえば、文字を含む 1 行で構成されるファイルがあるとします5

音量を下げる場合にも同様のスクリプトを使用できます。

#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
VOLCHANGE=`cat $DIR/volume-increment`
pactl set-sink-volume @DEFAULT_SINK@ -$VOLCHANGE% ;

次に、キーボード ショートカット アプレットを開き、元の音量コントロールのショートカットを無効にして、上記のスクリプトを指すカスタムのショートカットを追加します。

「音量を上げる」ボタンが少し長いのは、音量を 100% に制限するためです。これがないと、音量を非常に高く設定でき (サウンド アプレットの 140% の上限よりも高く)、ハードウェア (または少なくとも聴力) が壊れる可能性があります。

(これもリファクタリングできますが、十分に機能します。)

答え2

ヘッドフォンまたは Bluetooth ヘッドセットを設定しても同じ問題が発生します。サウンドを再起動してみてください:

pulseaudio --kill

pulseaudio -D

関連情報