如何使用 ssh 远程启动/配置 pulseaudio?

如何使用 ssh 远程启动/配置 pulseaudio?

我有一台可以 ssh 连接的远程机器。远程机器上有一个程序,它使用脉冲音频从连接到远程机器的 USB 麦克风获取输入。此设置在本地操作时工作正常,即我在本地连接时可以从脉冲音频获取输入。

通过 ssh,我收到错误:

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

同样,当我尝试pavucontrol通过 在远程计算机上打开时ssh -X,我收到以下消息:

连接 PulseAudio 失败。... 在这种情况下,这可能是因为环境/X11 根窗口属性中的 PULSE_SERVER 或 client.conf 中的默认服务器配置错误。

pulseaudio --start
N: [pulseaudio] main.c: User-configured server at {30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native, refusing to start/autospawn.

尝试使用 x11 启动脉冲音频:start-pulseaudio-x11

Connection failure: Connection refused
pa_context_connect() failed: Connection refused

pulseaudio --check直接返回命令提示符。

如果我尝试获取 ssh X 属性,我会得到:

user1@remote-pc:~$: xprop -root | grep PULSE
PULSE_COOKIE(STRING) = Some stuff here
PULSE_SERVER(STRING) = "{30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native"
PULSE_SESSION_ID(STRING) = "30ab51874e4a0ca492830f1400000007-1407765989.424751-1424846683"
PULSE_ID(STRING) = "12165@30ab51874e4a0ca492830f1400000007/2040"

好的。我见过与此问题相关的问题,但在每种情况下,提问者都希望通过网络连接传输声音,而我却不想这样做。那么我该如何配置PULSE_SERVER呢?

答案1

我似乎已经通过运行解决了这个问题

pax11publish -r

现在,xprop -root | grep PULSE显示:

PULSE_SERVER(STRING) = "{9899a0f46bdae6bbc8e6e8b200000005}unix:/home/user1/.pulse/9899a0f46bdae6bbc8e6e8b200000005-runtime/native"

显然pulseaudio --check应该正常转到命令提示符。显然这表明它正在运行。

答案2

将其放入远程服务器的 ~/.bashrc 中(如果您使用 Bash 作为默认 shell):

if test "$SSH_CLIENT" ; then export PULSE_SERVER=tcp:localhost; fi

或者放

default-server = tcp:localhost

/etc/pulse/client.conf或在同名的文件中脉冲如果使用此类文件,则将其保存在用户特定配置文件目录下的目录中。请参阅https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html了解有关目录的更多信息。

相关内容