Wählen Sie die Soundkarte mit Konsolenbefehlen

872
Thommy

Ist es möglich, die Zimt-Einstellungen-App in der Befehlszeile zu verwenden, um die Standard-Soundkarte zu ändern? Die Standard-Soundkarte scheint nicht in dconf eingestellt zu sein.
Ich versuche ein Skript zu schreiben, das zwischen HDMI- und analoger Soundausgabe wechselt.

1

1 Antwort auf die Frage

2
Alexx Roche

I think that you are looking for

pacmd set-default-sink <sink_name|index> 

as outlined in https://askubuntu.com/questions/690711/change-sound-output-from-command-line and https://askubuntu.com/questions/14077/how-can-i-change-the-default-audio-device-from-command-line

You can get the available index with

pacmd list-sinks|grep index|awk '' 

If you want to control the volume you can do that on the commandline with alsamixer (ncurses) or amixer.

If you are going to play with pulseaudio settings then

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

will give you your own copy that is safer to edit

pulseaudio -k #should restart pulseaudio after you change settings. 

For your script you may want to check that the available audio rates are compatible with your sink-device:

grep rates $(grep -ci hdmi /proc/asound/card*/codec#0|grep -v :0|sed 's,:.$,,'|head -n1) 

and depending on which profile each card is attached to

pactl --server "unix:/run/user/$(id -u)/pulse/native" set-card-profile 1 output:analog-stereo 

and

pactl --server "unix:/run/user/$(id -u)/pulse/native" set-card-profile 0 output:hdmi-stereo 

may help create useful variables. It looks like someone has already tried to do what you are doing:

But some of their variables are either archlinux specific or out-of-date. (Though their path to triggering your script may be of help.)

Ich habe es ausprobiert, aber es funktioniert nicht, bis ich mich abgemeldet oder neu gestartet habe. Thommy vor 6 Jahren 0
Haben Sie Pulseaudio -k gemacht? Alexx Roche vor 6 Jahren 0
Ja. Ich habe auch mit dem Profil `pacmd set-card-profile 2 output: iec958-stereo` versucht Thommy vor 6 Jahren 0
if ** pacmd list-cards | grep output \: hdmi-stere ** Findet Ihre Karte ** pactl set-card-profile 0 ausgabe: hdmi-stereo ** macht die änderung möglich? https://askubuntu.com/a/541043/155829 Alexx Roche vor 6 Jahren 0
Der Einstellungsmanager zeigt die Änderung an, aber der Ton wird immer noch über die falschen Lautsprecher ausgegeben. Wenn ich pacmd move-output versuche, heißt es, dass der Index nicht existiert. Thommy vor 6 Jahren 0
Was bedeutet ** pacmd list-cards | grep -A1 index ** sagen? Alexx Roche vor 6 Jahren 0
Index: 0 Name: Thommy vor 6 Jahren 0
ndex: 1 name: Thommy vor 6 Jahren 0
** pacmd set-default-sink alsa_card.usb-C-Media_Electronics_Inc._USB_Audio_Device-00 ** sollte die Ausgabe wechseln. * pacmd list-sinks | grep name: | sed -e 's /.* $ //' * ist wahrscheinlich eine sauberere Möglichkeit, die Senken aufzulisten Alexx Roche vor 6 Jahren 0
Ich habe gerade eine saubere Debian8-Maschine aufgeschraubt und bis ich ** pactl set-card-profile 0 lief: hdmi-stereo ** die hdmi wurde nicht in * pacmd list-cards * aufgeführt - dann habe ich ** cat / sys / gecheckt class / drm / card * HDMI * / status ** und stellte fest, dass das Kabel lose war Alexx Roche vor 6 Jahren 0
Die Umzugssenke funktioniert einfach nicht. Ich habe einen Weg gefunden, die API meiner Desktop-Umgebung zu verwenden. Auf diese Weise ist es nicht kompatibel mit anderen DEs, aber zumindest funktioniert es jetzt für mich. Danke für Ihre Hilfe. Thommy vor 6 Jahren 0
Sie können Ihre Lösung als Antwort posten. Alexx Roche vor 6 Jahren 0
Wird es tun, aber ich muss den Code zuerst bereinigen :) Thommy vor 6 Jahren 0