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
NautilusのPIDを使用し(セッションでプロセスが常に実行されるように変更する必要がある場合があります)、環境変数を検索してエクスポートしDBUS_SESSION_BUS_ADDRESS
ます。
これにより、Pulseに接続されたプログラムが正しく実行されます。セッションd-busを介して通信する他のプログラムも動作します(例えば、ドライバーのためのaudtool)。勇敢なコマンドライン経由)。