Um zur HDMI-Audioausgabe (des Monitors) und zur normalen Audioausgabe über die System-Audio-Buchse zurückzukehren (für Kopfhörer, da mein Monitor keinen Audioausgang hat), öffne ich die Toneinstellungen und wähle jedes Mal den richtigen Kanal. Gibt es eine Möglichkeit, eine Umschalttaste im Bedienfeld zu erstellen oder eine Tastenkombination zum Umschalten zuzuweisen, da ich so oft umschalte?
:aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 7: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
sound
software-recommendation
iJeeves
quelle
quelle
Antworten:
Mit pulseaudio können wir die Ausgabesenke über die Befehlszeile auswählen:
Dieser Befehl kann in einem Launcher, Skript oder sogar einer Tastenkombination zum schnellen Umschalten zwischen verschiedenen Senken verwendet werden. Bitte ersetzen Sie "SINKNAME" durch den Namen oder die Nummer Ihrer gewünschten Spüle. Eine Liste der bekannten Senken mit ihren zugehörigen Nummern und Namen wird durch den Befehl angegeben:
Hinweis: Das Ändern der Ausgabesenke über die Befehlszeilenschnittstelle kann nur wirksam werden, wenn das Lesen des Stream-Zielgeräts deaktiviert ist. Dies kann durch Bearbeiten der entsprechenden Zeile in erfolgen
/etc/pulse/default.pa
:Alternativ könnten wir pulseaudio ausführen, um den Ton gleichzeitig an das interne Audiogerät und an das HDMI-Gerät auszugeben, indem wir paprefs mit der Option ausführen , ein virtuelles Ausgabegerät hinzuzufügen:
quelle
pacmd set-default-sink "alsa_output.pci-0000_00_1b.0.analog-stereo"
undpacmd set-default-sink "alsa_output.pci-0000_00_1b.0.hdmi-stereo"
funktioniert nur nach Auswahl des entsprechenden Profils in den Toneinstellungen. Wenn ich HDMI eingestellt habe und den Befehl pacmd für analoges Stereo ausführe, wird der Fehler angezeigt.Sink alsa_output.pci-0000_00_1b.0.analog-stereo does not exist.
Wenn ich das Profil jedoch manuell in der GUI für Toneinstellungen auswähle und denselben Befehl ausführe, wird der Fehler nicht angezeigt. Es hilft also nicht, zu wechseln.Ich fand das sehr ärgerlich und schrieb ein Skript, um die Ausgabe umzuschalten:
und binden Sie dann eine nicht verwendete Taste auf meiner Tastatur, um sie auszuführen (siehe Wie binde ich benutzerdefinierte Befehle an Tastaturkürzel? )
quelle
Noch ein Sink Switcher Script
Getestet auf Ubuntu 16.04
Mit dieser Option können Sie jedoch nur das Audio der gewünschten Anwendung umschalten.
VERWENDUNG: Konzentrieren Sie sich auf die Anwendung, deren Senke Sie ändern möchten, und führen Sie dieses Skript aus. Das ist es!!!
Dieses Skript erkennt die Anwendung, die im Fokus steht, findet alle wiedergegebenen Audios und schaltet sie auf die nächste verfügbare Senke um.
https://gist.github.com/madacol/1a0d8569166886d2d98f073f7f5c5fe3
Das Drehbuch erklären
Wir müssen die PID der Anwendung im Fokus finden
Aber zuerst brauchen wir die XID
Dann fügen Sie es hier ein
$xid
, um die PID der Anwendung zu erhaltenJetzt müssen wir die mit dieser PID verbundenen Senkeneingänge finden
Lassen Sie uns zuerst die Ausgabe des Befehls linearisieren,
pacmd list-sink-inputs
um eine Senken-Eingabe pro Zeile aufzulisten, wobei der Index, die Senke und die PID in derselben Zeile angezeigt werdenLassen Sie es uns Schritt für Schritt analysieren:
grep -E 'index:|sink:|process.id
nur halten Linien , die enthaltenindex:
,sink:
oderprocess.id
tr '\n' ' '
verbindet alle Zeilentr -d '"'
Entfernt alle"
Zeichen. Notwendig, um die PID ohne Anführungszeichen zu erhaltensed -e 's/index:/\n/g'
Ersetzt alleindex:
Vorkommen durch ein neues Zeilenzeichen\n
tail -n +2
Entfernt die erste Zeile, weil sie leer istUnd das Ergebnis ist ungefähr so:
Analysieren wir eine Zeile, um zu verstehen, was dies bedeutet:
182
ist der Senken-Eingabe-Index,0
ist der Senken-Index und ist13752
am Ende die PID der zugehörigen AnwendungDann durchlaufen wir jede Zeile
Und schließlich filtern Sie nur die PID der Senke-Eingabe, die mit der PID der fokussierten App übereinstimmt
Daten extrahieren
Mit können
awk
wir die Elemente bekommen, die wir brauchenHolen Sie sich die Anzahl der Spülen, um zu wissen, wann die Drehung der Spülen von 0 an wieder aufgenommen werden soll.
Um die nächste Senke zu finden, müssen wir die Liste der Senken durchlaufen, um zu wissen, welche mit current_sink_index übereinstimmt, und um den Index der nächsten Senke zu kennen.
Und schließlich verschieben wir den Sink-Input, um in next_sink_index zu spielen
Hinweis zu Ubuntu 16.04:
Bei der Konfiguration der Tastenkombination konnte ich nicht dafür sorgen, dass sie mit dem Verknüpfungsmanager von Ubuntu funktioniert. Also musste ich compizconfig-settings-manager installieren
quelle
Wenn Sie Gnome Shell anstelle von Unity verwenden, können Sie die folgende Erweiterung installieren. Sie können dann von der Lautstärkeverknüpfung im oberen Bedienfeld aus wechseln. https://extensions.gnome.org/extension/142/output-device-chooser-on-volume-menu/
quelle
Da im Screenshot nur eine Soundkarte zu sehen ist, sollte meiner Meinung nach der Ausgang dieser Soundkarte umgeschaltet werden.
Zum Beispiel: Ich habe ein Notebook mit einer integrierten Soundkarte, aber im angedockten Zustand verfügt es über einen digitalen Ausgang (SPDIF).
Ich wollte also den aktiven Ausgang oder das "Profil" in pulseaudio umschalten.
Ich habe die Befehle gefunden, die genau das tun:
Was ich getan habe, um die richtigen Namen für meine gewünschte Ausgabeeinstellung zu erhalten - hier digitaler Ausgang, aber analoger (Mikro-) Eingang - war:
quelle
Ich habe auch versucht, eine Lösung für dieses Problem zu finden. Ab Ubuntu 11.04 scheint dies nicht direkt möglich zu sein. In dieser Anleitung wurden nur HDMI und Analog als separate Ausgänge hinzugefügt. Daher zeigt pacmd jetzt 3 Senken an. Dann ist es möglich, mit den obigen Befehlen zwischen den Spülbecken zu wechseln. ( siehe auch )
Aber anscheinend wird Ubuntu 11.11 ein PulseAudio mit Jack Detection System bekommen. Laut der folgenden Website hat David Henningsson eine Erkennung über udev codiert, sodass die Impulstöne automatisch auf die zuletzt hinzugefügte Ausgabe umgeschaltet werden, einschließlich des Umschaltens zwischen verschiedenen Profilen derselben Soundkarte (wie dies bei Ihrem und meinem Setup der Fall ist). (siehe hier )
Ich hoffe also, dass das klappt, wenn ich nächsten Freitag die endgültige Version probiere.
quelle
Basierend auf vielen der vorherigen Antworten habe ich ein Skript geschrieben, mit dem die Wiedergabesenke zwischen den verfügbaren abwechselnd eingestellt wird.
Sie können es am besten verwenden, indem Sie eine Tastenkombination erstellen, mit der Sie es ausführen. Bei jedem Drücken dieser Tastenkombination wird das Audio zur nächsten verfügbaren Senke umgeleitet.
Der Code ist hier verfügbar: https://gist.github.com/germank/7fa2fb07d45a838bf890addadd8bea8c
quelle
In meinem Fall waren die analogen Optionen nicht in der Liste. Installieren Sie pavucontrol:
sudo apt install pavucontrol
Konnte das Problem beheben, indem Sie die Anwendung starten:
pavucontrol
eingeben : (enter)Jetzt konnte ich hier verschiedene Profile (unter Linux Mint) anhören und auswählen:
quelle
Eine Alternative zur Sound Switcher- Anzeige (die das Hinzufügen einer PPA erfordert) besteht darin, einen Befehl (oder ein Skript) zu erstellen und ihn mit einer Verknüpfung aufzurufen:
In meinem Fall war
hdmi-stereo-extra1+input
Profil, also in einer Zeile wäre:Sie können eine benutzerdefinierte Verknüpfung (
gnome-control-center keyboard
) verwenden, um sie auszuführenbash -c
(warnt Sie, wenn ein Konflikt mit einer anderen Verknüpfung vorliegt):Ich benutze:
Sie können auch ein hinzufügen
alias
zu Ihrem.bashrc
.Getestet unter Ubuntu 16.04 und 18.04
Wenn Sie das Verhalten eines Skripts nicht übertreffen, habe ich basierend auf der Antwort @ user829996 einige Änderungen vorgenommen:
quelle
Ich habe ein Indikator-Applet geschrieben , mit dem Sie die Tonausgabe umschalten können.
quelle