Answers:
如果您将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
然后在远程计算机上,您可以使用 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
显然,您可以根本不对脉冲音频使用任何身份验证,但是我不建议您使用此解决方案。至少使用防火墙以避免远程连接。
pulseaudio --check ; echo $?
检查Pulseaudio服务器是否正在运行。0
如果正在运行,它将打印。
/usr/lib64/pulse-1.1/modules/module-native-protocol-tcp.so
。您在哪个发行版上运行?
0
正确地回应。.远程在ubuntu 11.10上,而我的本地在11.04上。我尝试直接在本地引用该模块, pactl load-module /usr/lib/pulse-0.9.22/modules/module-native-protocol-tcp.so auth-ip-acl=localhost
然后得到了Failure: Invalid argument
。任何的想法?(btw感谢您的帮助)
auth-ip-acl
从版本0.9.3开始受支持。见freedesktop.org/wiki/Software/PulseAudio/Documentation/User/...
pactl load-module module-native-protocol-tcp auth-ip-acl=localhost
。我是否缺少依赖项?