Dans Ubuntu et probablement dans d'autres distributions, il y a une chose graphique pour changer le périphérique de sortie audio. J'ai essayé d'écrire un outil de ligne de commande qui fait la même chose, mais cela ne fonctionne pas toujours.
Ce que je fais pour passer, disons, au puits 0 est le suivant :
pacmd set-default-sink 0
Ce qui, je pense, devrait rendre tout nouveau les entrées vont au puits 0. Ensuite, pour chaque entrée existante, selon pacmd list-sink-inputs
Je fais :
pacmd move-sink-input <input_id> 0
Mais cela ne fonctionne souvent pas. Souvent, je change de lavabo, puis je joue de l'audio dans une application et il sera toujours attaché à l'ancien lavabo. Qu'est-ce que j'oublie ici? Comment puis-je faire cela de manière robuste ?
Réponse acceptée :
Extrait de cet article de blog :
PulseAudio lui-même est livré avec deux outils de ligne de commande de base, appelés pacmd et pactl. Former propose une commande set-default-sink, mais cela ne fait pas ce que vous en attendez. Il s'avère que, du moins sur mon système, le démon PulseAudio conserve des paramètres persistants pour chaque application qui s'y est connectée. Cela signifie que le récepteur par défaut n'est utilisé que pour les applications que le démon n'a pas encore vues.
En d'autres termes, ce blogueur a rencontré exactement le même problème que vous :
- changer le récepteur par défaut n'affecte que les programmes qui n'ont pas été utilisés auparavant
- le déplacement d'une entrée existante n'affecte que les programmes réellement actifs avec la carte son
- vous aurez besoin d'un outil pour parcourir les paramètres persistants et les rediriger vers la nouvelle carte.
Et donc ce blogueur avait écrit paswitch
, un outil en ligne de commande pour faire exactement cela. Vous pouvez trouver son code source au format Git ici.
Pour installer :
- Assurez-vous d'avoir un package de bibliothèque de développement Pulseaudio (
libpulse-dev
ou similaire) installé. Vous aurez également besoin dugcc
compilateur et lemake
utilitaire. - Exécuter
git clone https://www.tablix.org/~avian/git/paswitch.git
pour télécharger le code source. cd paswitch
pour entrer dans le répertoire créé par legit clone
commande, puis exécutezmake
.- Si terminé sans erreur, il devrait maintenant y avoir un
paswitch
binaire dans le répertoire. Copiez-le dans votre/usr/local/bin/
répertoire. - Lire le
README
fichier dans le répertoire pour un exemple sur la façon de l'utiliser.
Une autre option consiste à indiquer au démon PulseAudio de ne pas conserver les paramètres du récepteur pour les applications, en ajoutant le restore_device=false
option à module-stream-restore
ligne dans /etc/pulse/default.pa
:
load-module module-stream-restore restore_device=false
Après avoir fait cela et redémarré PulseAudio, le changement de récepteur par défaut entraînera l'utilisation par défaut de toutes les nouvelles applications audio.
Mais votre kilométrage peut varier en fonction de l'environnement de bureau que vous utilisez :sur ma Debian 9, la désactivation de la persistance a provoqué d'autres comportements gênants avec KDE, et j'ai fini par revenir au comportement par défaut. Si je me souviens bien, la liste Paramètres système de KDE -> Multimédia -> Audio et vidéo -> Préférences de périphérique obtenait une nouvelle copie de mes périphériques audio à chaque connexion.
En relation :Comment gcc sait-il où boost est installé ?