Tengo auriculares nuevos, los AKG K318 para ser exactos y tienen uno de esos controles remotos. En un teléfono inteligente, como un teléfono Android o un iPhone, los botones se asignan a acciones en el reproductor de música, como reproducir/pausar, subir/bajar volumen, saltar, anterior, ya entiendes la idea.
Me preguntaba cómo podría replicar la misma función en mi computadora.
Me imagino que el proceso consiste en hacer que X reconozca la entrada y luego, de alguna manera, mapear esas entradas para que las use una aplicación.
El "dispositivo" (que se conectaría a través del conector de sonido) no aparece en xinput
, ni los botones activan eventos de teclado regulares.
¿Cómo puedo utilizar los auriculares conectados al conector de salida de sonido como entradas de la tecla X?
Respuesta1
Esos auriculares "especiales" que se pueden utilizar en dispositivos especializados para controlar reproductores multimedia, volumen y silencio suelen tener CUATRO conexiones en el enchufe, frente a las TRES típicas que tiene un conector de salida de auriculares normal.
Los tres habituales son Canal izquierdo, Canal derecho y Tierra (común), mientras que el cuarto a menudo se configura como una resistencia de valores múltiples, cada botón cuando se presiona presenta una resistencia particular en el cuarto cable (+ tierra), que el dispositivo multimedia puede sentir y a partir de ahí determinar qué función se necesita. Un método bastante ingenioso para hacer que varios botones funcionen con un cable sin recurrir a costosos generadores de señales digitales y demás (¡todo empaquetado en esa pequeña gota en los cables!).
Cuatro botones pueden usar cuatro resistencias (de cualquier unidad):
volume up: 1 ohm
volume down: 2 ohms
stop: 4 ohms
play: 8 ohms
Si esto se parece sospechosamente a un esquema de codificación binaria... ¡¡lo es!! (¡¡Eres tan inteligente!!) Usando valores con proporciones similares, puedes detectar 16 salidas diferentes, incluso manejando varias teclas presionadas al mismo tiempo. ¡Taa Daa!
Las personas mayores tal vez recuerden los primeros iPods, que tenían un pequeño conector de 4 conectores al lado del enchufe de salida de audio, al que muchos dispositivos se conectaban junto con su enchufe de audio, lo que permitía enviar señales de control de un lado a otro. Esto se eliminó gradualmente en favor del sistema de cuarto cable (¡en mi humilde opinión, más genial!)... los auriculares estándar funcionarán como se esperaba, y también se aceptan auriculares configurados para interactuar con el método del cuarto cable.
Pero para responder a tu pregunta (¡¡por fin!!)... no, no existe una forma "estándar" de habilitar la funcionalidad que estás buscando. Los auriculares Bluetooth serían su mejor solución. (¡los míos son geniales!)
Respuesta2
Hasta donde yo sé, actualmente no existe una forma estandarizada de usar sus auriculares con cable como entrada con Linux. Esto significa que no podrá usar sus auriculares para controlar su reproductor de música; los auriculares Bluetooth, por otro lado, deberían funcionar de inmediato.
Respuesta3
No es una solución para todos, pero mis auriculares tienen un solo botón. Aparentemente, algunos de esos sencillos botones de auriculares utilizan una especie de mecanismo de señalización de micrófono que comprueba si la entrada del micrófono es "alta" (consulte este artículo).correoy estocorreo). Usando audacia, pude verificar que hacer clic en el botón generaba un pico característico inalcanzable con el habla (¡aunque no he intentado gritar!). Buscando en Internet, se me ocurrió la siguiente solución usando sox 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
es un programa que controla la reproducción multimedia. El .5
código indica la resolución de pol del micrófono. Puedes jugar con este valor si quieres implementar el doble toque. 0.89
indica el umbral para el botón que se presiona. (el mío es básicamente igual a 1 cuando se presiona)