Пульт дистанционного управления наушниками в звуковом гнезде как X-вход

Пульт дистанционного управления наушниками в звуковом гнезде как X-вход

У меня есть новые наушники, AKG K318, если быть точным, и у них есть один из таких пультов. На смартфоне, таком как телефон Android или iPhone, кнопки соответствуют действиям на музыкальном проигрывателе, таким как воспроизведение/пауза, увеличение/уменьшение громкости, пропуск, предыдущий, вы поняли.

Мне было интересно, как я могу воспроизвести ту же функцию на своем компьютере.

Я полагаю, что процесс состоит из того, чтобы заставить X распознать входные данные, а затем каким-то образом сопоставить эти входные данные для использования приложением.

«Устройство» (которое подключается через звуковой разъем) не указано в списке xinput, а кнопки не запускают обычные события клавиатуры.

Как использовать наушники, подключенные к выходному звуковому разъему, в качестве входов для клавиши X?

решение1

Эти «специальные» наушники или вкладыши, которые можно использовать на специализированных устройствах для управления медиаплеерами, громкостью и отключением звука, обычно имеют ЧЕТЫРЕ соединения на штекере, в отличие от ТРЕХ, которые обычно имеются на обычном выходном разъеме для наушников.

Обычные три — это левый канал, правый канал и земля (общая), в то время как четвертая часто настраивается как многозначное сопротивление, каждая кнопка при нажатии представляет определенное сопротивление на четвертом проводе (+ земля), которое может распознать медиаустройство и на основании этого определить, какая функция нужна. Довольно ловкий метод заставить несколько кнопок работать с одним проводом, не прибегая к дорогим цифровым генераторам сигналов и прочему (все упаковано в эту маленькую каплю на проводах!).

Четыре кнопки могут использовать четыре сопротивления (любой единицы):

volume up:   1 ohm
volume down: 2 ohms
stop:        4 ohms
play:        8 ohms

Если это подозрительно похоже на схему двоичного кодирования... так оно и есть!! (Вы такой умный!!) Используя значения, соотнесенные подобным образом, вы можете воспринимать 16 различных выходов, даже обрабатывая нажатие нескольких клавиш одновременно. Таа-даа!

Старики, возможно, помнят первые iPod, у которых был маленький 4-контактный разъем рядом с аудиовыходом, к которому подключались многие устройства вместе со своим аудиовыходом, что позволяло посылать сигналы управления туда и обратно. Это было постепенно заменено (imho, более крутой!) системой четвертого провода... стандартные наушники будут работать, как и ожидалось, и наушники, настроенные на взаимодействие с методом четвертого провода, тоже принимаются.

Но отвечая на ваш вопрос (наконец-то!!)... нет, не существует «стандартного» способа включить нужную вам функциональность. Лучшим решением будут Bluetooth-гарнитуры. (мои — КРУТЫЕ!)

решение2

Насколько мне известно, в настоящее время нет стандартизированного способа использования проводной гарнитуры в качестве входа с Linux. Это означает, что вы не сможете использовать гарнитуру для управления музыкальным проигрывателем - гарнитуры Bluetooth с другой стороны должны работать из коробки.

решение3

Не для всех, но мои наушники с одной кнопкой. Видимо, некоторые из этих простых кнопок наушников используют своего рода механизм сигнализации микрофона, который проверяет, является ли вход микрофона "высоким" (см. этопочтаи этопочта). Используя audacity, я смог убедиться, что нажатие кнопки генерирует характерный пик, недостижимый речью (хотя я не пробовал кричать!). Поискав в интернете, я придумал следующее решение с использованием sox's 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это программа, которая управляет воспроизведением медиа. .5В коде указывает разрешение поляризации микрофона. Вы можете поиграть с этим значением, если хотите реализовать двойное нажатие. 0.89указывает порог нажатия кнопки. (у меня он в основном равен 1 при нажатии)

Связанный контент