GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment basculer de manière robuste le périphérique de sortie Pulseaudio à partir de la ligne de commande ?

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 du gcc compilateur et le make 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 le git clone commande, puis exécutez make .
  • 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é ?
Linux
  1. Comment installer un logiciel à partir de la ligne de commande Linux

  2. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

  3. Comment invoquer une macro Openoffice à partir de la ligne de commande Linux ?

  4. Comment puis-je copier un dossier à partir de la ligne de commande Linux ?

  5. Comment exécuter TeX à partir de l'interface de ligne de commande sous Linux

Comment faire des captures d'écran à partir de la ligne de commande à l'aide de "Scrot" sous Linux

Comment trouver une adresse IP publique à partir de la ligne de commande sous Linux

Comment régler la luminosité du moniteur à partir de la ligne de commande sous Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment vérifier les statistiques du réseau Linux à partir de la ligne de commande