web-dev-qa-db-fra.com

Changer la sortie audio de la ligne de commande

J'ai écrit un script qui modifie ma sortie d'affichage de DVI (mon moniteur) en HDMI (mon téléviseur) à l'aide de xrandr. Dans ce script, je souhaite également modifier ma sortie audio de la sortie de ligne analogique vers HDMI.

J'ai essayé ce qui suit:

pacmd set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1

Cela semble changer certains sons (comme le son que vous entendez lorsque vous ajustez le volume sur le bureau) en HDMI, mais la sortie audio par défaut des applications (comme le mode Big Picture et divers jeux) est réglée sur analogique. Pour le changer en HDMI, je dois cliquer sur le panneau de configuration du son sur le bureau et le changer manuellement en HDMI.

Comment changer le son de la ligne de commande de manière fiable? Ou encore, que font exactement les paramètres sonores d'Ubuntu lorsque je modifie la sortie audio?

J'utilise Ubuntu 15.10.

7
Echows

Changer le périphérique de sortie par défaut peut en effet se faire en utilisant l'interface CLI de pulseaudio:

pacmd set-default-sink <sink_name|index>

Ce périphérique par défaut peut toutefois être modifié par le module module-stream-restore chargé par défaut. Ce module restaurera également un périphérique sauf si nous l'appelons avec le paramètre suivant:

load-module module-stream-restore restore_device=false

Ceci devrait être mis dans notre default.pa pour remplacer la ligne correspondante.

Pour que cette modification soit valable pour tous les utilisateurs, nous devons donc éditer le /etc/Pulse/default.pa en tant que root. Une meilleure approche consiste cependant à travailler sur une copie de ce fichier dans notre répertoire utilisateur où nous pouvons le mettre à ~/.config/Pulse/

cp /etc/Pulse/default.pa ~/.config/Pulse/

Les paramètres que nous avons définis ici remplaceront ceux de /etc/Pulse, il est donc prudent de les expérimenter ici. En cas de problème, supprimez simplement ce fichier pour permettre à pulseaudio d'utiliser à nouveau les paramètres par défaut du système.

Toutes les modifications apportées à default.pa ne prennent effet que si le serveur pulseaudio est réinitialisé. Cela peut être fait avec:

pulseaudio -k

Regarde aussi:
Comment changer le récepteur Pulseaudio avec "pacmd set-default-sink" pendant la lecture?

5
Takkat