Ich habe neue Ohrhörer, genauer gesagt die AKG K318, und sie haben eine dieser Fernbedienungen. Auf einem Smartphone, beispielsweise einem Android-Telefon oder iPhone, sind die Tasten Aktionen auf dem Musikplayer zugeordnet, beispielsweise Wiedergabe/Pause, Lautstärke hoch/runter, Überspringen, Zurück, Sie verstehen schon, was ich meine.
Ich habe mich gefragt, wie ich dieselbe Funktion auf meinem Computer replizieren könnte.
Ich stelle mir vor, dass der Prozess darin besteht, X dazu zu bringen, die Eingabe zu erkennen und diese Eingaben dann irgendwie für eine Anwendung zuzuordnen.
Das „Gerät“ (das über die Soundbuchse verbunden würde) ist nicht aufgeführt und xinput
die Tasten lösen auch keine normalen Tastaturereignisse aus.
Wie kann ich die an die Soundausgangsbuchse angeschlossenen Kopfhörer als X-Key-Eingänge verwenden?
Antwort1
Diese „speziellen“ Kopfhörer oder Ohrhörer, die an speziellen Geräten zum Steuern von Mediaplayern, der Lautstärke und der Stummschaltung verwendet werden können, haben normalerweise VIER Anschlüsse am Stecker, im Gegensatz zu den üblichen DREI, die eine normale Kopfhörerausgangsbuchse hat.
Die üblichen drei sind linker Kanal, rechter Kanal und Masse (gemeinsam), während der vierte oft als mehrwertiger Widerstand eingerichtet ist. Jede Taste erzeugt beim Drücken einen bestimmten Widerstand auf dem vierten Kabel (+ Masse), den das Mediengerät erkennen und daraus bestimmen kann, welche Funktion erforderlich ist. Eine ziemlich raffinierte Methode, mehrere Tasten über ein Kabel zum Laufen zu bringen, ohne auf teure digitale Signalgeneratoren und ähnliches zurückgreifen zu müssen (alles verpackt in diesem kleinen Klecks auf den Kabeln!).
Vier Tasten können vier Widerstände (jeder Einheit) verwenden:
volume up: 1 ohm
volume down: 2 ohms
stop: 4 ohms
play: 8 ohms
Wenn das verdächtig nach einem binären Kodierungsschema aussieht … dann ist es das auch!! (Sie sind so schlau!!) Durch die Verwendung ähnlich proportionierter Werte können Sie 16 verschiedene Ausgaben erfassen und sogar mehrere gleichzeitig gedrückte Tasten verarbeiten. Taa Daa!
Ältere Leute erinnern sich vielleicht noch an die ersten iPods, die neben dem Audioausgang eine kleine 4-polige Buchse hatten, an die viele Geräte zusätzlich zu ihrem Audiostecker angeschlossen wurden, um Steuersignale hin und her senden zu können. Dies wurde zugunsten des (meiner Meinung nach cooleren!) Systems mit vier Drähten abgeschafft... Standardkopfhörer funktionieren wie erwartet und Kopfhörer, die für die Verbindung mit der Methode mit vier Drähten eingerichtet sind, werden ebenfalls akzeptiert.
Aber um Ihre Frage (endlich!!) zu beantworten... nein, es gibt keine „Standardmethode“, um die gewünschte Funktionalität zu aktivieren. Bluetooth-Headsets wären Ihre beste Lösung. (Meine sind COOL!)
Antwort2
Soweit ich weiß, gibt es derzeit keine standardisierte Möglichkeit, Ihr kabelgebundenes Headset als Eingabe unter Linux zu verwenden. Das bedeutet, dass Sie Ihr Headset nicht zur Steuerung Ihres Musik-Players verwenden können – Bluetooth-Headsets hingegen sollten sofort funktionieren.
Antwort3
Nicht für jeden eine Lösung, aber meine Kopfhörer haben nur eine Taste. Anscheinend verwenden einige dieser einfachen Kopfhörertasten eine Art Mikrofonsignalmechanismus, der prüft, ob der Mikrofoneingang „hoch“ ist (siehe diesPostund dasPost). Mit Audacity konnte ich überprüfen, dass das Klicken auf die Schaltfläche einen charakteristischen Höhepunkt erzeugte, der mit Sprache nicht erreicht werden kann (obwohl ich nicht versucht habe zu schreien!). Beim Suchen im Internet bin ich mit Sox auf die folgende Lösung gestoßen rec
:
#!/usr/bin/sh
while true; do
rec -n stat trim 0 .5 2>&1 | awk '/^Maximum amplitude/ && $3 > 0.89' | grep -q 'M' && playerctl play-pause
done
playerctl
ist ein Programm, das die Medienwiedergabe steuert. Das .5
im Code gibt die Mikrofon-Pol-Auflösung an. Sie können mit diesem Wert experimentieren, wenn Sie Doppeltippen implementieren möchten. 0.89
gibt den Schwellenwert für das Drücken der Taste an. (Meine ist beim Drücken grundsätzlich gleich 1)