Wie kann ich automatisch auf mein USB-Headset umschalten, wenn es angeschlossen ist?

10

Ich verwende Funtoo Linux , ein Gentoo- Derivat. Meine zwei neuen Plantronics USB-Headsets (eines kabelgebunden, eines kabellos) funktionieren einwandfrei. Ich schließe eine an, ALSA bemerkt es, und wenn ich manuell eine Anwendung so einstelle, dass sie anstelle der Standardgeräte verwendet wird, wird dies der Fall sein.

Ich würde es vorziehen, das Headset einfach als Standardeingabe / -ausgabe zu verwenden, wenn es vorhanden ist, und die Standardeinstellung ansonsten auf meine integrierten Lautsprecher zurückzusetzen. Wie automatisiere ich diese Art von Switch?

HedgeMage
quelle

Antworten:

4

Sie können udev-Regeln verwenden. Dazu müssen Sie die Geräteattribute finden, die Ihr USB-Headset nach dem Anschließen auszeichnen. Dies kann normalerweise in zwei Schritten erfolgen:

  • Führen udevadm monitor --udevSie das Gerät aus, bevor Sie es anschließen. Schließen Sie es dann an. Es wird eine Reihe von Ausgangsleitungen geben - wählen Sie einfach eine aus und kopieren Sie den Gerätepfad daraus - es ist so etwas wie /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0.

  • Verwenden Sie udevadm info --path=/your/device/path --attribute-walkbei noch angeschlossenem Headset einige Attribute, die Ihr Gerät von anderen unterscheiden (z. B. ATTR{idVendor}und ATTR{idProduct}).

Wenn Sie das haben, können Sie eine udev-Regel erstellen, die beim Anschließen des Geräts ausgelöst wird. Schauen Sie sich die Dateien unter an, /etc/udev/rules.d/um zu sehen, wie diese aussehen. Der, den Sie wahrscheinlich konstruieren werden, endet mit RUN+="some command". Man beachte , dass die Kennungen ( SUBSYSTEM=, ATTRS=etc.) in einer solchen Linie verwendet , um alle aus der Beschreibung der gleichen Vorrichtung kommen muß - das gleiche Stück udevadm info --attribute-walkausgegeben.

Der zweite Teil der Aufgabe besteht darin, amixerEinstellungen zu finden , die Ihren Anforderungen für jedes Szenario entsprechen, und sie in einen Befehl RUN+=einzuschließen , den Sie in den Teil der udev-Regel einfügen. Damit kann ich Ihnen nicht helfen, da ich keine ähnliche Hardware habe.

rozcietrzewiacz
quelle
3

Wie von Caleb erwähnt, können Sie mit PulseAudio Streams von einem Gerät auf ein anderes migrieren.

pavucontrolFügen Sie das module-switch-on-connectModul wie hier beschrieben zu Ihrer PulseAudio-Konfiguration hinzu, um automatisch und nicht manuell zu wechseln :

/ubuntu/158241/automatically-change-sound-input-output-device/158250#158250

John Glassmyer
quelle
1
Beachten Sie auch, dass CLI-Tools zur Steuerung von PA ( pacmdund pactl) integriert sind.
HalosGhost
2

Wenn Sie es noch nicht haben pulseaudio, erhalten Sie diese Art von Flexibilität in einer wirklich einfach zu bedienenden Routing-Konsole namens pavucontrol. Die bevorzugten und Fallback-Geräte können je nach Anwendungs- und Systemstandard festgelegt werden.

Caleb
quelle
1
Und die Änderung des Ausgabegeräts ist für die Anwendung transparent (wenn es pulseausio verwendet) - Sie müssen die Anwendung nicht neu starten, um beispielsweise das Ausgabegerät zu ändern - es ist sogar möglich, die Ausgabegeräte während der Wiedergabe zu ändern.
Maxschlepzig
0

Ich habe gerade ein Plantronics-Headset gekauft und hatte das gleiche Problem. Es wurde gelöst, indem ich http://alsa.opensrc.org/MultipleCards folgte :

Bearbeitete /etc/modprobe.d/50-alsa.confDatei zum Festlegen der Standardreihenfolge:

options snd slots=snd-usb-audio,snd-hda-intel

Ich habe auch alle anderen verwandten Konfigurationen gelöscht, nämlich /etc/modprobe.d/50-sound*.

Ich habe das Plugin / Plug-In des Headsets überprüft und mir die Ausgabe von angesehen aplay -l

Dies verwendete openSUSE 12.2 und Plantronics .Audio 655.

Isaac Uribe
quelle