所以我有finch
一个命令行聊天客户端(想想 pidgin)在我ssh
进入的远程机器上运行。finch
具有通知声音并且可以在发生某些事件时运行命令,让您将声音文件作为%s
. 例如mplayer %s
从远程机器上,当通知发生时,我可以运行什么样的命令来播放%s
本地机器上的任何内容?
如果您使用pulse-audio作为声音服务器,您可以使用它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
Run Code Online (Sandbox Code Playgroud)
然后在远程机器上你可以使用 paplay
paplay -s 127.0.0.1:9999 soundfile.wav
Run Code Online (Sandbox Code Playgroud)
添加我发现它auth-ip-acl
不接受localhost
作为有效参数,您必须使用127.0.0.1
(或任何您的机器使用本地主机地址)。
编辑它应该是ssh -R
,不是ssh -L
(我们将远程端口转发到本地端口)。
如果您有旧版本的脉冲音频(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
Run Code Online (Sandbox Code Playgroud)
显然,您可以简单地在脉冲音频中不使用任何身份验证,但我不能向您推荐此解决方案。至少使用防火墙来避免远程连接。
归档时间: |
|
查看次数: |
3139 次 |
最近记录: |