Streamer de la musique au local
Le local est désormais équipé d'une paire de haut-parleurs connectés à hackens-milieu. Il est possible de se connecter depuis sa propre machine pour diffuser de la musique au local.
Howto
- Il faut d'abord s'assurer que
hackens-milieuest allumé (normalement c'est le cas), ainsi que les enceintes (la multiprise au dessus de la porte de l'arrière contôle ça, ainsi que les projos pour une ambiance 100% cozy). - Dans le cas d'une configuration réseau avec
NetworkManager, il est possible d'utiliser un script qui active/désactive le transfert de l'audio sur les enceintes. Sinon, il faut :- S'assurer d'être connecté au réseau local, soit par ethernet soit par Wi-Fi en étant connecté à
The_Game. - Avoir
pactl(disponible dans les paquetspulseaudioetpipewiresur la plupart des distros) - Lancer
pactl load-module module-tunnel-sink server=hackens-milieu sink=@DEFAULT_SINK@puispact set-default-sink tunnel-sink.hackens-milieu.
- Il suffit ensuite de faire quelque chose qui fait du son (musique, vidéo, jeux…) pour qu'il soit diffusé au local !
- Pour se déconnecter, il suffit de, au choix,
- Lancer
pactl unload-module module-tunnel-sink - Se déconnecter du réseau local
- Re-exécuter toggle_hackens_sink.sh
Problèmes potentiels
Je n'arrive pas à me connecter, alors que je suis sur le réseau local
Est-ce que hackens-milieu est bien allumé ? Si il faut réinitialiser la configuration depuis cette machine, il faut :
- Se placer dans une nix-shell avec les bons paquets
nix-shell -p pulseaudioFull - Lancer
~/launch_remote_sinkou, de façon équivalentepactl load-module module-native-protocol-tcp auth-anonymous=true
J'ai fait un script pour me connecter automatiquement mais j'ai une erreur lorsque j'essaie de configurer le default-sink
C'est possiblement une race condition. pactl rend le contrôle avant d'avoir fini son opération, donc il arrive que si l'on fait un script avec load-module et set-default-sink à la suite, ça ne fonctionne pas.
Une solution un peu hacky consiste à juste introduire un léger délai (sleep 0.1 suffit).
Une solution plus sérieuse demanderait d'attendre jusqu'à ce que le module soit effectivement chargé.