在 tmux 中設定音訊輸出等級失敗

在 tmux 中設定音訊輸出等級失敗

我正在關注這個問題從命令列設定音量等級。我需要能夠在 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會話的使用者身分登入的會話中。

相關內容