Poniższy przykład pokazuje, jak utworzyć tunel pulseaudio TCP, aby przekazywać dźwięk z komputera alphana komputer beta. W moim przypadku na obu komputerach działa Ubuntu 14.04.
Na alpha(komputerze źródłowym) dodaj następujące wiersze do /etc/pulse/default.pa:
.fail
load-module module-tunnel-sink sink_name=beta server=tcp:IP_ADDRESS_OF_BETA:4713
.nofail
(Wybierz dowolną unikalną wartość sink_name. Dowolnie zdecydowałem się użyć tej wartości beta.)
Na beta(komputerze docelowym) dodaj następujący wiersz do /etc/pulse/default.pa:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;LAN_NAME
Powyżej, LAN_NAMEi IP_ADDRESS_OF_BETAbędzie specyficzny dla twoich komputerów i twojej sieci LAN. Mogą to być na przykład:
LAN_NAME = 192.168.1.0/24
IP_ADDRESS_OF_BETA = 192.168.1.10
Po wprowadzeniu powyższych zmian uruchom ponownie pulseaudio, najpierw włącz beta, a następnie włącz alpha. Kolejność ma znaczenie. Ponownie uruchamiam pulseaudio za pomocą pulseaudio --kill. Biegnę pulseaudio --killjak mój pesonal UID(nie jako root), jako PulseAudio jest już uruchomiony jako mój osobisty UID.
Jeśli wszystko działało pomyślnie, powinieneś teraz zobaczyć tunel na Output Deviceszakładce pavucontrolna alpha. Podczas odtwarzania źródła audio powinieneś być w stanie skierować źródło do tunelu na Playbackzakładce pavucontrolna alpha.
Dopóki tunel jest nienaruszony, powinieneś także widzieć tunel na Playbackzakładce pavucontrolna beta. Jeśli tunel zniknie, uruchom ponownie pulseaudio, najpierw włącz beta, a następnie włącz alpha. Tunel jest tworzony tylko po pulseaudiouruchomieniu alpha.
Uwaga 1: W tym przykładzie założono, że pulseaudio działa zarówno na, jak alphai na beta. Od 2016 roku pulseaudio działa domyślnie na Ubuntu i działa od lat.
Uwaga 2: W tym przykładzie nie użyto sieci konfiguracji Avahi Zero. Avahi może być domyślnie włączony w Ubuntu, ale wyłączyłem Avahi w moich systemach. W mojej sieci LAN beta(komputer docelowy) zawsze ma ten sam adres IP i znam ten adres.
Uwaga 3: Powyższe auth-ip-aclzapewnia dostęp do dowolnego urządzenia w sieci LAN. Pulseaudio obsługuje również inne (bardziej bezpieczne) metody uwierzytelniania. Używam auth-ip-acldo uproszczenia konfiguracji.
Więcej informacji można znaleźć na następujących stronach:
/raspberrypi/8621/how-to-set-up-a-pulseaudio-sink
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network/# index2h2
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index14h3