我有一台可以 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了解有关目录的更多信息。