Je voudrais utiliser mon Raspberry Pi comme un récepteur PulseAudio pouvant lire du son via le réseau.
Pour commencer, je veux faire fonctionner Pulseaudio localement et j'ai rencontré diverses erreurs. J'utilise l'image Debian recommandée.
Quelle est la meilleure procédure pour faire fonctionner PulseAudio?
Voici ce que j'ai essayé jusqu'à présent:
Procédure
Jusqu'à présent, ma procédure ressemblait à ceci:
Installez Pulseaudio et VLC:
sudo apt-get install pulseaudio
Configurez GStreamer pour utiliser le récepteur pulseaudio:
gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
Chargez le module du noyau pour le périphérique audio
sudo modprobe snd_bcm2835
Exécutez VLC avec un mp3
vlc
Problèmes
VLC se fissure à plusieurs reprises, imprimant cette erreur:
[0x7503d0] alsa audio output error: cannot write: Broken pipe
Réponses:
Je l'ai fait fonctionner sur mon Raspberry Pi en utilisant le récepteur ALSA, avec la procédure suivante:
Pour installer les fichiers nécessaires:
Pour activer ALSA:
Pour configurer la mise en réseau:
et décommenter les lignes:
Pour démarrer le serveur pulseaudio, utilisez:
Vous devriez pouvoir tester son fonctionnement en lisant un fichier wav avec paplay (
sudo apt-get install pulseaudio-utils
), et également sur le réseau en sélectionnant le récepteur dans le panneau de contrôle du son de votre système.Vous pourrez peut-être également configurer en mode système avec:
la source
pulseaudio-module-zeroconf
est manquant dans la partie d'installation d'apt-get. Devrait mentionner peut-être aussi lepulseaudio --log-level=debug
dépannage de tout problème. Sur la source sonore (pas la framboise pi), vous devriez lancerpaprefs
pour visualiser facilement votre conf pulseaudio (si vous avez X11). Et n'oubliez pas de redémarrer enpulseaudio
cas de doute.Si vous souhaitez que pulseaudio démarre au démarrage, mais en tant que service de niveau utilisateur, vous pouvez créer un fichier d'unité systemd. Cela peut être utile, car pulseaudio ne préfère pas s'exécuter en mode système. https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/
Voici le service que j'ai écrit dans /etc/systemd/system/pulseaudio.service
Avant = lui indique d'attendre jusqu'à ce que sound.target s'initialise. BusName = le connecte à D-Bus WantedBy = session.target est un défaut utile, mais je ne sais pas vraiment ce qu'il fait.
la source
~/.config/systemd/user/pulseaudio.service
et utiliser systemd avec le--user
drapeau pour éviter les privilèges root.J'ai eu du mal à faire fonctionner pulseaudio sur Wheezy raspbian (2012-10-28) en utilisant la sortie analogique. Voici ce que j'ai fait pour le faire fonctionner en mode par session (pas en mode système). Le mode système peut également fonctionner, je ne l'ai pas essayé. La configuration du serveur nécessitera un peu plus de travail. J'ai trouvé ces informations à divers endroits, j'espère que les rassembler ici aidera quelqu'un.
Installez pulseaudio et assurez-vous que l'utilisateur (par exemple eric) fait partie du groupe audio:
Modifiez /etc/asound.conf comme suit. Ceci configure pulseaudio pour être utilisé comme périphérique alsa par défaut afin que les applications l'utilisent sans aucune configuration supplémentaire. Les deux premières déclarations (dont celle commentée) figuraient dans le dossier d'origine.
Ajoutez les lignes suivantes à /etc/pulse/daemon.conf:
trivial
est la méthode de qualité la plus basse, mais utilise environ 6% de CPU.src-sinc-fastest
a également fonctionné pour moi, mais utilise environ 25% de CPU. D'autres peuvent également fonctionner. Ce peu plus tard, je ne comprends pas très bien le besoin, mais cela semblait être l'ingrédient magique. Vous pouvez en lire plus ici .Enfin, pour couper le son entre les morceaux, commentez cette ligne dans /etc/pulse/default.pa comme suit:
Il y a encore des abandons lorsque deux sources jouent en même temps, si je découvre un remède pour cela, j'ajouterai à cette réponse.
la source
trivial
moi.