私はフォローしていますこの質問コマンドラインから音量レベルを設定します。tmux セッション内 (実際には tmux で実行されているノード プロセス) から音量を設定できるようにする必要があります。
amixer -D pulse sset Master 50%
SSH セッションで直接実行すると、問題なく動作します。
$ amixer -D pulse sset Master 50%
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 26214 [50%] [on]
Front Right: Playback 26214 [50%] [on]
tmux を開いて同じコマンドを実行すると、失敗します。
$ tmux
...
$ amixer -D pulse sset Master 50%
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
amixer: Mixer attach pulse error: Connection refused
child_process.spawn
ノード内では、 tmux から実行した場合と同じ結果を返す関数を使用しているだけなので、それらは関連していると思います。
何が起こったのですか?
答え1
興味深いことに、これは私の tmux セッションがシステム全体のサービス ファイルから開始され、ユーザー レベルの pulseaudio サービスと通信するための環境変数が設定されていなかったために発生しました。
次の文字列を amixer コマンドの先頭に追加するだけで修正されました。
PULSE_SERVER=unix:/run/user/1000/pulse/native
そのようです:
$ PULSE_SERVER=unix:/run/user/1000/pulse/native amixer -D pulse sset Master 50%
異なる可能/run/user/1000
性がありますが、実行中であるかどうかを判断できます
$ echo $XDG_RUNTIME_DIR
使用したい pulseaudio セッションを持つユーザーとしてログインしたセッション。