在 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 会话。

相关内容