Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как узнать о нажатии кнопки на Bluetooth-наушниках?  [new]
crossa
Member

Откуда:
Сообщений: 101
Моя программа реагирует на нажатие мультимедийных кнопок на клавиатуре (если такие кнопки есть). Для этого в главной форме проверяю коды нажатых кнопок в обработчике OnKeyDown. Кнопка "Play/Pause" имеет код 0xB3, кнопка "Stop" - код 0xB2 и т.д. Всё нормально работает, никаких проблем нет.

procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
     if Key = $B3 then // Play/Pause
     begin

     end;
end;

Проверял также работу программы вместе с проводными наушниками, на которых есть мультимедийные кнопки. Нажатие таких кнопок генерит нужные коды, так что и с этим всё в порядке.

Но есть bluetooth-наушники с клавишей "Play/Pause". И вот с обработкой нажатия этой кнопки возникла проблема: при нажатие ничего не происходит, нет никакого кода. Обработчики OnKeyDown, OnKeyPress ничего не получают.

Наушники Defender FreeMotion B615, дешевенькие. Приложение их "видит", посылает туда звук; с этим проблем нет. На наушниках четыре кнопки: "Pause/Play", "Volume Up", "Volume Down", "Screenshot". И при этом нажатие кнопки "Screenshot" на наушниках программа получает код 0xAF, который можно отловить в обработчике OnKeyDown (этот код на самом деле соответствует клавише "Увеличить громкость" на мультимедийной клавиатуре). Это очень странно: три кнопки не генерят коды, одна генерит.

(По задумке разработчиков наушников, кнопка "Screenshot" должна работать совместно с мобильным приложением из Google Play. Для меня эта кнопка бесполезна.)

Вопрос: можно ли каким-либо образом получить информацию о нажатии кнопки "Play/Pause" на Bluetooth-наушниках?

Delphi XE, Windows 7/10, обычное desktop-приложение для Windows.
29 май 21, 21:30    [22328870]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать о нажатии кнопки на Bluetooth-наушниках?  [new]
alekcvp
Member

Откуда:
Сообщений: 2870
Написать системный хук на клавиатуру и посмотреть что вообще происходит при нажатии кнопок на наушниках.
Но это сложный путь 😃
30 май 21, 02:05    [22328913]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать о нажатии кнопки на Bluetooth-наушниках?  [new]
Cobalt747
Member

Откуда:
Сообщений: 2318
crossa,

А другие плееры реагируют на кнопки наушников?
1 июн 21, 09:20    [22329655]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать о нажатии кнопки на Bluetooth-наушниках?  [new]
crossa
Member

Откуда:
Сообщений: 101
Снимаю свой вопрос: проблема была лишь с моими наушниками. Другие Bluetooth-наушники при нажатии кнопки "Play/Pause" нормально генерят код 0xB3, программа обрабатывает его в процедуре для события OnKeyDown. Спасибо за помощь.
1 июн 21, 15:51    [22329905]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить