在我的本地计算机上通过 ssh 在 finch 中播放声音/通知

在我的本地计算机上通过 ssh 在 finch 中播放声音/通知

所以我有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作为有效参数,您必须使用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

显然,您可以简单地不在脉冲音频中使用任何身份验证,但我不能推荐您这个解决方案。至少使用防火墙来避免远程连接。

相关内容