Кнопка воспроизведения / паузы в моих наушниках 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, и оно прекрасно распознает нажатия кнопок. Так как это было моей главной целью в этом исследовании, я не буду вдаваться в подробности, но было бы интересно узнать, откуда он получает нажатия кнопок и почему он не работает для других приложений.