J'utilise la fonction PulseAudio des périphériques audio réseau (pas Multicast / RTP) pour lire le son de mon netbook sur l'équipement audio connecté au HTPC à la maison. Cela crée un périphérique audio virtuel que je peux ensuite utiliser à la place du périphérique physique intégré. La plupart du temps, cela fonctionne très bien. Parfois, cependant, le périphérique audio virtuel n'apparaît tout simplement pas. Se déconnecter et se reconnecter au réseau aide parfois mais pas toujours et c'est ennuyeux et potentiellement mauvais pour les connexions TCP existantes.
Donc, ma question est essentiellement la suivante: existe-t-il un moyen de dire à PulseAudio "Hé, regardez à nouveau si vous ne trouvez vraiment pas de périphérique audio réseau".
Edit: Décharger et recharger le module-zeroconf-discover
avec pacmd
n'aide pas non plus et cela ne semble pas être un problème avahi en soi car il avahi-browse -t --all | grep PulseAudio
montre beaucoup de choses à la recherche de la bonne apparence, même lorsque les appareils ne sont pas répertoriés dans pavucontrol ou pacmd list-sinks
.
Edit 2: J'utilise Ubuntu 12.04 sur les deux boîtes pour toute la différence que cela pourrait faire.
la source
Réponses:
$ pacmd
Vous verrez un shell de type Python avec le message de bienvenue suivant.
Welcome to PulseAudio! Use "help" for usage information. >>>
>>> list-sinks
Vous verrez maintenant une liste détaillée de tous les puits de son.
1 sink(s) available. index: 0 name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
...
La chaîne qui m'intéresse est simplement "alsa_output.pci-0000_00_1b.0.analog-stereo"
$ pactl load-module module-tunnel-sink "server=192.168.1.105 sink=alsa_output.pci-0000_00_1b.0.analog-stereo sink_name=home_theater"
Ici 192.168.1.105 est l'adresse IP du PC récepteur, "alsa_output.pci-0000_00_1b.0.analog-stereo "est la chaîne que vous venez de copier à partir du terminal du récepteur et" home_theater "n'est qu'un nom de fantaisie pour appeler ce périphérique de sortie audio virtuel sur votre ordinateur.
$ pacmd set-default-sink home_theater
Wallah !!
la source
Un simple
sudo service avahi-daemon restart
fait l'affaire, même s'ilavahi-browse
voit les appareils avant le redémarrage d'avahi. Merci à Takkat de m'avoir pointé dans la bonne direction.la source
Cette réponse n'est pas testée, elle pourrait donc ne pas fonctionner, mais elle pourrait vous conduire dans la bonne direction.
Je peux confirmer les problèmes non résolus avec un service Avahi qui est parfois incapable de se connecter à un serveur PulseAudio. Nous pouvons réussir la reconnexion en redémarrant le réseau ou le serveur pulseaudio mais hélas cela ne fonctionne pas toujours.
Pour surmonter ce problème, nous pouvons essayer d'établir un flux audio réseau en utilisant le protocole TCP natif pour diffuser directement sur IP plutôt que d'utiliser une résolution de nom Avahi.
Pour ce faire, nous pouvons tunneler un récepteur distant en chargeant le module-tunnel-sink du côté récepteur. Sur l'expéditeur, nous devons activer le protocole TCP natif en chargeant module-native-protocol-tcp .
Voir aussi cette question pour la terminologie et comment définir la
PULSE_SERVER
variable:Comment définir automatiquement le récepteur par défaut PulseAudio sur le serveur distant au démarrage - Ubuntu 9.04
C'est une question assez ancienne pour Ubuntu 9.04 mais pour ma terminologie et les procédures de knwoledge, cela n'a pas beaucoup changé depuis lors.
Veuillez également suivre le wiki PulseAudio sur les connexions réseau .
la source
sudo service avahi-daemon restart
je ne m'attendais pas à cela caravahi-browse
voit les appareils avant même le redémarrage, mais je suppose que le redémarrage déclenche le rappel pour être rappelé, ce qui est tout ce qui est nécessaire.Vous pouvez essayer
pulseaudio -k
, ce qui tue le service pulseaudio (il semble redémarrer automatiquement). Cela m'a ramené des choses auparavant.L'autre chose qui aide parfois est de décocher puis de recoller les cases
Pulseaudio Preferences
(akapaprefs
). Les cases à cocher sontMake discoverable PulseAudio network sound devices available locally
enNetwork Access
etEnable network access to local sound devices
enNetwork Server
. Évidemment, cela ne fonctionne probablement que pour celui que vous utilisez.la source