1

Кнопка воспроизведения / паузы в моих наушниках Bluetooth (подключенная с помощью USB-ключа) не работает с Windows 10 (переключатели громкости работают нормально), поэтому я попытался переназначить нажатие клавиши на кнопку воспроизведения / паузы медиа.

Сначала я попробовал с AHKHID и использовал примеры, чтобы узнать, к какому устройству HID подключено. Вот только что показали клавиатуру и мышь. Поэтому я больше посмотрел на устройства Bluetooth и написал программу для запуска доступных служб Bluetooth на наушниках. 3 службы, которые он мог найти, были SPP, HSP и HFP. Из них SPP выглядел как наиболее перспективный, как утверждает Википедия

Он эмулирует последовательный кабель, обеспечивая простую замену существующему RS-232, включая знакомые сигналы управления. Это основа для DUN, FAX, HSP и AVRCP.

Я знал, что AVRCP должен быть тем, с которого отправляются элементы управления, так что это должен быть тот сигнал, с которого исходит сигнал воспроизведения / паузы. Я посмотрел на последовательные COM-порты, доступные на моем компьютере, и обнаружил, что он использует COM3 для входящих и COM4 для исходящей связи с наушниками.

Теперь это то, где я застрял. Я попытался подключиться к сервису SPP, работающему в наушниках программно, который работал (не выдавал никаких ошибок), но событие входных данных не сработало и истекло время чтения потока.

Я также пытался проверить последовательные данные с помощью Serial Port Monitor (пробная версия), но он ничего не показывает, кроме того, когда я нажимаю кнопку открытия или закрытия, он показывает кучу сообщений настройки.

В чем может быть проблема? Использует ли это Windows и поэтому она не позволяет другим программам получить к ней доступ (или очищает поток до того, как другие его увидят)? Или я что-то не так делаю?

Есть идеи?

Редактировать:

Тем временем я установил нативное приложение Spotify для Windows, и оно прекрасно распознает нажатия кнопок. Так как это было моей главной целью в этом исследовании, я не буду вдаваться в подробности, но было бы интересно узнать, откуда он получает нажатия кнопок и почему он не работает для других приложений.

0