- Управление звуком с гарнитуры (Android)
- Гарнитуры с одной кнопкой
- Гарнитуры с тремя и более кнопками
- Xiaomi, Nexus One
- HTC Desire
- Samsung J2
- Как пользоваться кнопками гарнитуры на наушниках
- Как настроить кнопку на гарнитуре Андроид
- Настройка кнопок на гарнитуре iphone
- Что делать если не работает кнопка на гарнитуре?
- Хак для поддержки кнопок Android-гарнитуры под Windows
- Как работают кнопки гарнитуры Android
- Проверка гипотезы
- Захват звука средствами Python
- Определение нажатия кнопки: наверное, слишком простой способ
- Управление воспроизведением в Windows
- Погодите, это ещё не всё!
Управление звуком с гарнитуры (Android)
Схемы управления звуком андроида ⏪, ⏵⏸, ⏩, 🔈+, 🔈− с пульта проводной гарнитуры.
В этой статье говорится о проводных гарнитурах работающих с устройствами на базе ОС Android.
Гарнитура — это наушники с микрофоном.
Гарнитуры с одной кнопкой
Гарнитура с одной кнопкой столь проста, что практически любой современный андрофон совместим с любой однокнопочной гарнитурой. Исключение составляют гарнитуры «для старых Нокий» из-за того, что распаяны по «старому» стандарту OMTP, но их надо ещё поискать.
В пульте однокнопочной гарнитуры находятся микрофон, конденсатор и кнопка на замыкание. Все они распаяны параллельно друг другу и выведены на контакты №3 и №4 штекера TRRS ▼
При нажатии на кнопку микрофон шунтируется и сопротивление между контактами штекера 3—4 падает до нуля. По этому признаку смартфон понимает, что нажали кнопку. Конденсатор же служит для сглаживания щелчка, возникающего при нажатии кнопки. К тому же, именно по наличию конденсатора некоторые смартфоны определяют, что к ним подключили гарнитуру.
Основные функции кнопки — приём вызова, прекращение разговора и включение голосового поиска. Голосовой поиск вызывается удержанием кнопки до появления характерного сигнала — «OK Google beep» ▼
При воспроизведении звука или видео кнопка выполняет функции паузы. Кстати, при записи на диктофон тоже.
Можно расширить возможности кнопки, типа, двойное нажатие — переход на следующий трек, тройное — на предыдущий. Для этого служат специальные приложения — ищите их на Google Play по запросу вроде «headset button control». К тому же некоторые плееры позволяют настроить функционал гарнитурной кнопки, например «Плеер мечты».
Гарнитуры с тремя и более кнопками
Более сложные гарнитуры позволяют регулировать громкость и переключать треки вперёд/назад. Та или иная функция вызывается установкой определённого сопротивления между контактами 3—4 штекера TRRS ▼
И вот тут не всё так однозначно, как с однокнопочной гарнитурой. Беды́, как водится, две:
• Никакого единого стандарта на номинал этих резисторов нет! Отчего нет и полной совместимости трёхкнопочных гарнитур с различными моделями смартфонов. У каждого производителя свои сопротивления. Хотя, есть спецификация для андрофонов, пытающаяся всех помирить.
• Смартфон вовсе не обязан выполнять все команды управления звуком.
Некоторые модели Fly вообще не управляются сопротивлением. И разумеется, с андрофонами не работают медиа-кнопки на гарнитуре от iPhone.
Samsung, к примеру, умеет безо всякого ПО менять громкость по команде с гарнитуры, а переключать треки — не умеет. То есть, трёхкнопочная гарнитура HTC конечно же будет воспроизводить звук с Samsung и микрофон будет работать. Но переключение треков работать не будет, хотя кнопки перемотки на пульте есть.
Xiaomi способен подстроиться под любую резистивную гарнитуру в меню «Калибровка кнопок» ▼
В меню «Функция кнопок» кнопкам «⏶» и «⏷» назначается либо «Регулировка громкости», либо «Переключение треков».
Единственное, что предсказуемо работает со всеми смартфонами — кнопка Play/Pause. Она просто замыкает контакты 3—4 штекера TRRS.
Xiaomi, Nexus One
Xiaomi и Nexus One по команде с пульта переключают треки. Номиналы резисторов отвечают распространённой в сети информации о якобы стандартном наборе сопротивлений для смартфонов Android. На самом деле не все андрофоны поддерживают этот «стандарт».
Пауза ⏸ — 0 Ω
Предыдущий трек ⏪ — 220 Ω
Следующий трек ⏩ — 600 Ω
HTC Desire
Бюджетная модель HTC Desire управляет громкостью. Для сравнения замечу, что HTC Sensation XE управляет переключением треков.
Пауза ⏸ — 0…150 Ω
Тише 🔈+ — 160…520 Ω
Громче 🔈− — 530…1560 Ω
Samsung J2
Samsung J2 управляет громкостью. Кроме прочего, сопротивлением от 120 до 160 Ом можно вызвать голосовой поиск, аналогично длительному нажатию.
Пауза ⏸ — 0…110 Ω
Громче 🔈+ — 170…310 Ω
Тише 🔈− — 315…890 Ω
Экспериментально обнаружено, что при сопротивлении 120…160 Ω активируется голосовой поиск.
Народ у меня такая проблема — гарнитура проводная с кнопкой которая умеет перелистывать треки перестала реагировать на кнопку и по ходу микрофон тоже перестал работать. Есть способы как то проверить работоспособность — звук в наушниках есть.
Есть пульт Nokia WH-701( оригинал). Перепаял jack с OMTP на CTIA. Если удалить внутреннюю начинку кроме кнопок старт/стоп и громкости и распаять по схеме, приведённой вами Samsung j2, будет ли это работать?
Добрый день! Не могу понять одну вещь: микрофон создает переменный ток, напряжение; сопротивление конденсатора обратно пропорционально частоте. Разве ток, созданный микрофоном, не будет замкнут через конденсатор? Ведь если будет, то никакого сигнала в телефон не дойдёт. Спасибо.
Ток в цепи микрофона не замыкается на конденсаторе, так как его сопротивление не равно нулю.
если не сложно, можно сопротивление всех кнопок которые поддерживают Xiaomi (+,-, next, prev, play/pause), и возможно ещё какие-то есть?
Ребята, на Xiaomi переключение треков осуществляется так :
Два нажатия на кнопку паузы — Следующий трек
Три нажатия на кнопку паузы — Прошлый трек
Источник
Как пользоваться кнопками гарнитуры на наушниках
Гарнитура — полезное дополнение к современному смартфону. Это компактное устройство, состоящее из наушников и микрофона, позволяет не только разговаривать по телефону без использования рук, но и прослушивать музыку в отличном качестве.
Сопряжение смартфона и гарнитуры осуществляется посредством беспроводной bluetooth-связи, а управление устройством происходит как с самого смартфона, так и при помощи кнопок на гарнитуре.
Однако далеко не всем известно, что гарнитура способна на нечто большее, чем просто просто передавать звук.
Существуют специальные приложения для управления кнопками гарнитуры, с помощью которых можно научить устройство выполнять много других полезных команд. О том, как «прокачать» популярный аксессуар, расскажем в данном обзоре.
Как настроить кнопку на гарнитуре Андроид
В большинстве случаев на Андроид-гарнитуре присутствует всего одна кнопка, но и ее можно настроить на выполнение различных действий при нажатии.
Самый быстрый и простой способ сделать это — через простое и понятное приложение SmartKey , которое можно без проблем скачать в Google Play, и которое отлично работает на всех современных моделях Андроид-смартфонов без необходимости в доступе к учетной записи главного администратора.
После установки приложения SmartKey на выбор пользователя в настройках будут доступны несколько вариантов действия на нажатие кнопки гарнитуры.
При этом предусмотрено три вида нажатия: одиночное, двойное и трехкратное.
Реакция на нажатие клавиши настраивается с учетом текущего состояния смартфона — приложение учитывает, включен ли плеер, поступил ли входящий вызов или смартфон просто находится в режиме ожидания.
Кнопка на гарнитуре наушников Android при помощи приложения СмартКей настраивается очень просто:
- Устанавливаем и запускаем приложение;
- Задаем настройки для функции «Музыка», т.е. какие действия будут выполняться при нажатии кнопки гарнитуры во время работы стандартного музыкального проигрывателя. Для этого нужно включить выбранный режим, переключив бегунок в режим «ВКЛ». Назначаем действие для однократного нажатия, выбрав любое из предложенных: воспроизведение/пауза, следующая дорожка, предыдущая дорожка, увеличение громкости, уменьшение громкости, голосовая команда. Аналогичным образом назначаем действия для двукратного и 3-кратного нажатия;
- Задаем настройки для функции «Вызов», т.е. какие действия будет выполнять смартфон при нажатии кнопки гарнитуры во время входящего вызова. В этом пункте для одиночного, двойного и трехкратного нажатия доступны следующие действия: ответить/завершить вызов, отклонить входящий вызов, включить/отключить микрофон, увеличить громкость и убавить громкость.
- Задаем настройки для «Режима ожидания» при подключенной гарнитуре. Для каждого из трех видов нажатия доступны следующие действия: повторить (вызвать) последний номер, увеличить громкость, убавить громкость, включить голосовую команду, запустить голосовой поиск.
Достаточно установить соответствующие настройки и закрыть приложение, чтобы они сохранились.
Настройка кнопок на гарнитуре iphone
Большинство пользователей «яблочных» устройств активно используют штатную гарнитуру EarPods, которая оснащена тремя клавишами — прибавление громкости, убавления громкости и центральным микропереключателем. Но не всем известно, что с их помощью можно подавать на смартфон множество команд, не доставая телефон из кармана.
Никаких дополнительных настроек делать нет необходимости, достаточно просто запомнить следующие команды:
- Включение музыки/пауза — однократное нажатие на центральную кнопку
- Переключение трека вперед — быстрое двойное нажатие центральной кнопки;
- Переключение трека назад — быстрое тройное нажатие;
- Перемотка песни вперед — короткое + длинное нажатие (с задержкой);
- Перемотка песни назад — два коротких + длинное нажатие (с задержкой);
- Принятие вызова — однократное нажатие на центральную кнопку гарнитуры;
- Отклонение входящего вызова — длительное нажатие;
- Фотографирование/запись видео (работает в режиме включенной камеры) — нажатие на кнопку прибавления громкости;
Использование облачного персонального помощника Siri — нажатие и удержание центральной кнопки.
Осенью 2017 года компания Apple представила штатную беспроводную гарнитуру AirPods, которая представляет собой 2 раздельных наушника.
Беспроводная гарнитура совместима с любыми устройствами Apple, работающими на базе операционной системы iOS 10 и выше. AirPods позволяют слушать музыку, звонить на телефонные номера, использовать ассистента Siri и выполнять прочие полезные функции.
Перед началом использования AirPods нужно настроить.
- Откройте чехол-зарядку для наушников, зайдите в раздел «Настройки» на айфоне, выберите вкладку «Bluetooth на устройстве iOS», затем — AirPods в предложенном списке устройств;
- Присвойте имя AirPods и нажмите Готово;
- Выберите левый наушник на экране, задайте для него команду, которую должен выполнять смартфон при двойном касании наушника. Это может быть запуск ассистента Siri, воспроизведение/пауза аудиозаписи, переключение трека вперед и назад;
- Выберите правый наушник AirPods, задайте для него команду, которую будет выполнять смартфон при двойном касании наушника.
Для управления содержимым музыкального проигрывателя, изменения громкости устройства или выполнения другого действия следует воспользоваться ассистентом Siri.
Этот же помощник оповестит пользователя о входящем вызове во время прослушивания музыки.
Чтобы ответить на звонок, достаточно дважды коснуться наушника. Аналогичное действие нужно повторить после завершения разговора или для переключения на другой вызов.
ВИДЕО ОБЗОР
» alt=»»>
Что делать если не работает кнопка на гарнитуре?
Очень часто владельцы айфонов и андроид-смартфонов, купив новую гарнитуру, сталкиваются с неожиданной проблемой — смартфон отказывается реагировать на нажатие кнопки, при этом сами наушники исправно воспроизводят музыку.
Причин у данной «патологии» может быть несколько, вот наиболее распространенные:
- Возможно, штекер не воткнут до конца — попробуйте надавить на него сильнее, чтобы он вошел до упора;
- Не совпадает распиновка штекера (разный стандарт распайки). Дело в том, что мини-джек диаметром 3,5 мм имеет четыре контакта, однако распайка управляющих сигналов может быть двух типов — OMTP и CTIA. Устранить проблему несовместимости устройств можно с помощью покупки переходника-адаптера OMTP-CTIA.
Источник
Хак для поддержки кнопок Android-гарнитуры под Windows
Я почти каждый день слушаю музыку на смартфоне и использую кнопки управления на гарнитуре. Но мне всегда не нравилась одна вещь. Я прихожу домой, продолжая прослушивание, гарнитура подключается к домашнему ПК — и внезапно кнопки перестают работать.
Конечно, я погуглил решение этой проблемы. К сожалению, на Windows эта замечательная функция не слишком поддерживается. Пара минут поиска дали только мутные упоминания на Stack Overflow о звуковых картах и сообщения некоторых людей, что на их ноутбуках всё работает нормально.
Меня это не испугало — и я решил принять проблему как интересный вызов: можно ли создать какую-то программу для активации кнопок управления, если аппаратной поддержки для них вообще нет? Ответ — да, можно. И вот как сделать это за полчаса.
Как работают кнопки гарнитуры Android
Первое, что нужно понять — как работают кнопки гарнитуры. Быстрый поиск в интернете нашёл эту спецификацию из документации Android. Там есть диаграмма.
Как можно понять, при нажатии кнопки на гарнитуре замыкается цепь на одном из резисторов. Особого внимания заслуживает Кнопка A (Play/Pause/Hook) с сопротивлением 0 Ом, то есть замыканием микрофона. Если мы способны обнаружить короткое замыкание микрофона, то так сможем определить нажатие кнопки Play/Pause.
Проверка гипотезы
Прежде чем начать программировать, хотелось бы проверить разумность наших рассуждений в принципе. То есть того, что по сигналу с микрофона можно определить нажатие кнопки Play/Pause. К счастью, для этого достаточно просто записать звук на компьютере и посмотреть на результат. Я запустил Audacity, нажал во время записи кнопку Play/Pause — и получил такой сигнал.
Бинго
Как видим, нажатие кнопки очевидно отражается в форме сигнала: внезапное падение до −1 с последующим внезапным переходом к 1 и постепенным уменьшением до 0. Интуитивно по спецификации я бы предположил, что сигнал подскочит до 1 и останется там, пока кнопку не отпустить, но в реальности выглядит иначе. Тем не менее, такую картинку всё равно легко обнаружить, если захватить аудиопоток с микрофона.
Захват звука средствами Python
Зная способ, как обнаружить нажатие кнопок на гарнитуре, можно подумать о главной цели: как управлять плеером на рабочем столе с помощью кнопок гарнитуры.
Первый шаг — обнаружение нажатия кнопки. Для этого нужно захватить аудиопоток с микрофона и обнаружить отчётливую подпись, которую мы видели ранее. Для простоты реализуем решение на Python. После ещё одного небольшого поиска в интернете я нашёл пакет под названием sounddevice, который позволяет абстрагироваться от самой трудной части — реального аудиозахвата с микрофона.
Немножко кодирования даёт нам следующее:
Такой код непрерывно выдаёт среднее значение каждой партии образцов. Мы установили частоту дискретизации 1000, что ужасно мало для обработки звука (обычно используется 44100), но нам в реальности не нужна большая точность. Размер блока определяет, сколько сэмплов в буфере инициируют обратный вызов. Опять же, мы установили очень низкие значения. Размер блока 100 и частота дискретизации 1000 фактически означает срабатывание 10 раз в секунду, где при каждом вызове обрабатывается только 100 сэмплов.
Определение нажатия кнопки: наверное, слишком простой способ
Теперь мы захватываем аудиопоток и можно реализовать реальный механизм для обнаружения нажатия кнопки. Напомним, что сигнал подскакивает до 1 всякий раз при нажатии. Это подсказывает самый простой способ обнаружения: если у N последовательных блоков значения сигнала выше 0,9, то есть нажатие.
Реализуем алгоритм в нашей функции:
По сути мы запустили внутренний счётчик, сколько обработанных блоков отвечают пороговому требованию, которое просто установили на 0,9, предусмотрев неизбежное зашумление образца. Если блок не удовлетворяет требованию, счётчик сбрасывается — и мы начинаем заново. Переменная is_held отслеживает срабатывания, чтобы не регистрировать их многократно, если кнопка не отпускается.
Управление воспроизведением в Windows
Теперь осталось только заменить в реальном коде комментарий “The button was pressed!”, чтобы управлять воспроизведением звука в Windows. Снова погуглим, чтобы разобраться, как это сделать: оказывается, можно управлять воспроизведением, имитируя нажатие клавиш соответствующими кодами виртуальных клавиш.
Оказалось, что имитировать нажатия клавиш очень легко с помощью пакета pywin32, который является просто оболочкой Python для Windows API. Собрав всё вместе, мы можем создать следующую функцию:
И у нас получилось! Обращение к функции toggle_play в том месте кода, где был комментарий “The button was pressed!”, позволяет управлять любым медиаплеером в Windows с помощью кнопок на гарнитуре Android.
Тесты показали, что код работает на удивление хорошо. Единственное различие между функциональностью на Android и Windows заключается в небольшой задержке при нажатии на кнопку, но с этим можно жить.
И вот что получилось
Скрипт Python состоит из 51 строки, которые активируют кнопки гарнитуры Android в Windows. Окончательный исходный код этого проекта лежит на Github.
Погодите, это ещё не всё!
После счастливого использования программы в течение нескольких часов я заметил серьёзную проблему:
Программа использует почти 30% CPU! Очевидно, это неприемлемо при длительной работе, что-то нужно делать. Посмотрев на код, я понял, что основной поток находится в состоянии ожидания в основном цикле, хотя там ничего не происходит. Наиболее логичное решение — просто усыпить поток навсегда: поскольку колбэк вызывается автоматически, нам всё равно не нужен цикл.
Источник