我有一台可以透過 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://specations.freedesktop.org/basedir-spec/basedir-spec-latest.html有關目錄的更多資訊。