tmux 내에서 오디오 출력 레벨 설정이 실패합니다.

tmux 내에서 오디오 출력 레벨 설정이 실패합니다.

나는 팔로우하고 있다이 질문명령줄에서 볼륨 레벨을 설정합니다. tmux 세션 내에서(실제로는 tmux에서 실행되는 노드 프로세스에서) 볼륨을 설정할 수 있어야 합니다.

SSH 세션에서 바로 실행하면 amixer -D pulse sset Master 50%정상적으로 작동합니다.

$ 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.spawntmux에서 실행하는 것과 동일한 결과를 제공하는 함수를 사용하고 있으므로 관련이 있다고 가정합니다.

무엇을 제공합니까?

답변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 세션의 사용자로 로그인된 세션에서.

관련 정보