
そこで、私はfinch
リモートマシン上で実行しているコマンドラインチャットクライアント(pidgin のようなもの)を持っていますssh
。finch
通知音があり、特定のイベントが発生したときにコマンドを実行することができ、サウンドファイルを として渡すことができます%s
。例:mplayer %s
リモート マシンから通知が発生した場合、%s
ローカル マシンにあるものを再生するにはどのようなコマンドを実行すればよいでしょうか。
答え1
使用する場合はパルスオーディオサウンド サーバーとして使用すると、module-native-protocol-tcp
リモート マシンからの TCP 接続を受け入れることができます。
次の例では、SSH トンネルを使用して、リモート マシンからローカル マシンにオーディオ要求を転送します。
ローカルマシンで、次のような操作を行います。
pactl load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
ssh -R 9999:127.0.0.1:4713 you@remotehost
リモートマシンでは、paplay
paplay -s 127.0.0.1:9999 soundfile.wav
追加した有効なパラメータとしてauth-ip-acl
受け入れられないことがわかったので、 (またはマシンが localhost アドレスを使用するもの) を使用する必要があります。localhost
127.0.0.1
編集(リモート ポートをローカル ポートに転送しています)ssh -R
ではなく、である必要があります。ssh -L
古いバージョンの pulse-audio (0.9.3 より前) をお持ちの場合は、Cookie ベースの認証を使用できます。
pactl load-module module-native-protocol-tcp auth-anonymous=1 auth-cookie-enabled=0
scp ~/.pulse-cookie you@remotehost:
ssh -R 9999:localhost:4713 you@remotehost
もちろん、pulse-audio で認証を使用しないという方法もありますが、この解決策はお勧めできません。少なくとも、リモート接続を回避するためにファイアウォールを使用してください。