集中式 PulseAudio 设置

evg*_*iuz 11 networking audio home-networking pulse-audio

我想做一个设置,以便我所有的电脑和电视都使用一个音频系统。像这样:

在此处输入图片说明

其中媒体服务器连接声学,电视通过声卡输入连接,其他系统使用PulseAudio通过网络访问声学。这个设置可以吗?

use*_*686 7

部分 - Linux 客户端容易,Windows 棘手。


对于 Linux 客户端,这很简单——只需设置$PULSE_SERVER媒体服务器的地址并复制~/.pulse_cookie身份验证文件即可。

PULSE_SERVER=tcp:mediaserver.home tcp6:mediaserver.home
Run Code Online (Sandbox Code Playgroud)

当然,请确保媒体服务器上的 PulseAudio 已加载所需的模块;它们中的大多数可以通过 启用paprefs,或者您可以通过~/.pulse/default.pa在媒体服务器上加载它们:

.include /etc/pulse/default.pa
# required:
load-module module-native-protocol-tcp
load-module module-simple-protocol-tcp
# needed if you use WinESD:
load-module module-esound-protocol-tcp
# optional, might be useful if you use Avahi:
load-module module-zeroconf-publish
Run Code Online (Sandbox Code Playgroud)

目前还没有适用于 Windows 的 PulseAudio 客户端,尽管可以使用非常古老的 WinESD驱动程序和 Pulse 的ESounD兼容模块,或者本博客文章中linco描述的工具;这里是一个简化的版本,从腻子到位的Cygwin:plink

linco -B 16 -C 2 -R 44100 | plink  user@mediaserver "pacat --playback"

如果您使用 iTunes,您可以在媒体服务器上运行Shairport,这将使其在 iTunes 上显示为 AirPort。

(事实上​​,将 Shairport 与 PulseAudio 客户端(通过module-raop-discover+ module-raop-sink)一起使用可能比未压缩的 Pulse 协议使用更少的带宽,但不幸的是,有一些不兼容性阻止了它的工作。)