Ändern Sie die Tonausgabe über die Befehlszeile

9

Ich habe ein Skript geschrieben, das mithilfe von xrandr meine Anzeigeausgabe von DVI (meinem Monitor) auf HDMI (mein Fernseher) ändert. In diesem Skript möchte ich auch meinen Audioausgang vom analogen Line-Out auf HDMI ändern.

Ich habe folgendes versucht:

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

Dies scheint einige Sounds (wie den Sound, den Sie hören, wenn Sie die Lautstärke auf dem Desktop einstellen) auf HDMI zu ändern, aber die Standard-Soundausgabe für Anwendungen (wie den Steam-Big-Picture-Modus und verschiedene Spiele) ist immer noch analog. Um es in HDMI zu ändern, muss ich auf das Sound-Einstellungsfeld auf dem Desktop klicken und es manuell in HDMI ändern.

Wie ändere ich die Tonausgabe über die Befehlszeile zuverlässig? Oder was genau macht Ubuntu-Soundeinstellungen unter der Haube, wenn ich die Tonausgabe ändere?

Ich verwende Ubuntu 15.10.

Echows
quelle

Antworten:

6

Das Ändern des Standardausgabegeräts kann in der Tat über die CLI-Schnittstelle von pulseaudio erfolgen:

pacmd set-default-sink <sink_name|index>

Dieses Standardgerät kann jedoch durch die standardmäßig geladene Modul-Stream-Wiederherstellung geändert werden . Dieses Modul stellt auch ein Gerät wieder her, es sei denn, wir rufen es mit dem folgenden Parameter auf:

load-module module-stream-restore restore_device=false

Dies sollte in unser default.paFeld eingefügt werden , um die entsprechende Zeile dort zu ersetzen.

Damit diese Änderung für alle Benutzer gültig ist, müssen wir sie /etc/pulse/default.paals root bearbeiten . Ein besserer Ansatz ist es jedoch, eine Kopie dieser Datei in unserem Benutzerverzeichnis zu bearbeiten, in die wir sie ablegen können~/.config/pulse/

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

Die Einstellung, die wir dort vorgenommen haben, überschreibt die Einstellungen /etc/pulse, sodass Sie hier sicher experimentieren können. Wenn etwas schief geht, löschen wir einfach diese Datei, damit pulseaudio die systemweiten Standardeinstellungen wieder verwendet.

Alle Änderungen in default.pane ein Reset des Pulseaudio-Servers werden wirksam. Dies kann erfolgen mit:

pulseaudio -k

Siehe auch:
Wie ändere ich die Pulseaudio-Senke mit "pacmd set-default-sink" während der Wiedergabe?

Takkat
quelle
1
Entschuldigung, ich habe vergessen, Ihre Lösung zu akzeptieren. Es hat tatsächlich funktioniert. Vielen Dank!
Echows
@Echows: danke! Ich hatte schon Angst, dass es bei dir nicht funktioniert;)
Takkat