GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Wie kann man das Pulsaudio-Ausgabegerät robust von der Befehlszeile aus wechseln?

In Ubuntu und wahrscheinlich anderen Distributionen gibt es eine grafische Sache, um das Audioausgabegerät umzuschalten. Ich habe versucht, ein Befehlszeilentool zu schreiben, das dasselbe tut, aber es funktioniert nicht immer.

Was ich tue, um beispielsweise zu Senke 0 zu wechseln, ist Folgendes:

pacmd set-default-sink 0

Was meiner Meinung nach alles neu machen sollte Eingaben gehen zur Senke 0. Dann für jede vorhandene Eingabe gemäß pacmd list-sink-inputs Ich mache:

pacmd move-sink-input <input_id> 0

Aber es funktioniert oft nicht. Oft wechsle ich die Senke, spiele dann etwas Audio in einer App ab und es wird immer noch an die alte Senke angehängt. Was fehlt mir hier? Wie kann ich dies robust tun?

Akzeptierte Antwort:

Aus diesem Blogbeitrag:

PulseAudio selbst wird mit zwei grundlegenden Befehlszeilentools geliefert, die pacmd und pactl genannt werden. Former bietet einen set-default-sink-Befehl, aber das macht nicht das, was Sie davon erwarten. Es stellt sich heraus, dass der PulseAudio-Daemon zumindest auf meinem System dauerhafte Einstellungen für jede Anwendung speichert, die sich jemals mit ihm verbunden hat. Das bedeutet, dass die Standardsenke nur für Anwendungen verwendet wird, die der Daemon noch nicht gesehen hat.

Mit anderen Worten, dieser Blogger hatte genau das gleiche Problem wie Sie:

  • Das Wechseln der Standardsenke wirkt sich nur auf Programme aus, die zuvor noch nicht verwendet wurden
  • das Verschieben vorhandener Eingänge wirkt sich nur auf Programme aus, die tatsächlich mit der Soundkarte aktiv sind
  • Sie benötigen ein Tool, um durch die permanenten Einstellungen zu gehen und sie auf die neue Karte zu verweisen.

Und so hatte dieser Blogger paswitch geschrieben , ein Befehlszeilentool, um genau das zu tun. Den Quellcode im Git-Format finden Sie hier.

Zum Installieren:

  • Stellen Sie sicher, dass Sie ein Pulsaudio-Entwicklungsbibliothekspaket haben (libpulse-dev o.ä.) installiert. Außerdem benötigen Sie den gcc Compiler und das make Dienstprogramm.
  • Führen Sie git clone https://www.tablix.org/~avian/git/paswitch.git aus um den Quellcode herunterzuladen.
  • cd paswitch um das vom git clone erstellte Verzeichnis zu betreten Befehl, und führen Sie dann make aus .
  • Bei fehlerfreier Ausführung sollte jetzt ein paswitch vorhanden sein binär im Verzeichnis. Kopieren Sie es nach /usr/local/bin/ Verzeichnis.
  • Lesen Sie die README Datei im Verzeichnis für ein Beispiel zur Verwendung.

Eine weitere Option besteht darin, den PulseAudio-Daemon anzuweisen, die Senkeneinstellungen für Anwendungen nicht beizubehalten, indem Sie restore_device=false hinzufügen Option zum module-stream-restore Zeile in /etc/pulse/default.pa :

load-module module-stream-restore restore_device=false

Nachdem Sie dies getan und PulseAudio neu gestartet haben, wird das Wechseln der Standardsenke dazu führen, dass alle neuen Soundanwendungen standardmäßig darauf zurückgreifen.

Aber Ihr Kilometerstand kann je nach verwendeter Desktop-Umgebung variieren:Auf meinem Debian 9 verursachte das Deaktivieren der Persistenz ein anderes lästiges Verhalten mit KDE, und ich kehrte schließlich zum Standardverhalten zurück. Wenn ich mich richtig erinnere, hat dies dazu geführt, dass die KDE-Systemeinstellungen -> Multimedia -> Audio und Video -> Gerätepräferenzliste bei jeder Anmeldung eine neue Kopie meiner Audiogeräte erstellt hat.

Verwandte:Woher weiß gcc, wo Boost installiert ist?
Linux
  1. So installieren Sie Software über die Linux-Befehlszeile

  2. Wie kann ich von der Befehlszeile aus feststellen, auf welcher Version von Os X ich mich befinde?

  3. Wie rufe ich ein Openoffice-Makro von der Linux-Befehlszeile aus auf?

  4. Wie erfahre ich die aktuelle Uhrzeit aus dem Internet über die Befehlszeile in Linux?

  5. So führen Sie TeX über die Befehlszeilenschnittstelle in Linux aus

So erstellen Sie Screenshots von der Befehlszeile mit „Scrot“ unter Linux

So finden Sie die öffentliche IP-Adresse über die Befehlszeile unter Linux heraus

So passen Sie die Monitorhelligkeit über die Befehlszeile in Linux an

So suchen Sie nach Dateien über die Linux-Befehlszeile

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

So überprüfen Sie die Linux-Netzwerkstatistik über die Befehlszeile