프로그램은 SSH에서 실행되며 실행 중인 컴퓨터의 pulseaudio에 액세스합니다.

프로그램은 SSH에서 실행되며 실행 중인 컴퓨터의 pulseaudio에 액세스합니다.

SSH를 통해 원격으로 프로그램을 실행하고 싶지만 프로그램이 실제로 실행되고 있는 원격 컴퓨터로 오디오를 보내고 싶습니다. 이것은 일반적으로 ALSA에서 작동하지만 pulseaudio는 클라이언트 연결을 허용하기 전에 일부 세션 유효성 검사기를 분명히 확인합니다.

이 검사를 덜 엄격하게 만들려면 어떻게 해야 합니까?

local: $ ssh remote           # remote is running pulseaudio and has sound hardware

remote:$ paplay something.wav
Connection failure: Connection refused

pa_context_connect() failed: Connection refused
remote:$ audacious something.mp3 # opens on local's X11 display
pulseaudio: Failed to connect to server: Connection refused
pulseaudio: Failed to connect to server: Connection refused

답변1

내 경우에는 다음이 나에게 효과적이었습니다.

pax11publish -r

답변2

DBUS_SESSION_BUS_ADDRESS원인은 ssh 에 Pulseaudio에 연결하도록 설정된 연결이 없다는 것입니다 . 솔루션(기반이 게시물)는 SSH를 통해 연결할 때 사용되는 my 에 다음 줄을 추가하는 것입니다 ~/.bashrc.

if [[ -n $SSH_CLIENT ]]; then
    export DBUS_SESSION_BUS_ADDRESS=`cat /proc/$(pidof nautilus)/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS | cut -d '=' -f2-`
fi

노틸러스의 PID를 사용하고(세션에서 프로세스가 항상 실행되도록 변경해야 할 수도 있음) 환경 변수를 검색하여 DBUS_SESSION_BUS_ADDRESS내보냅니다.

이렇게 하면 Pulse에 연결된 프로그램이 제대로 실행됩니다. 세션 d-bus를 통해 통신하는 다른 프로그램도 작동합니다(예: 운전자용 audtool).용감한명령줄을 통해).

관련 정보