Я работаю над функцией медиаплеера Bluetooth проекта интернет-радио, написанного на C на платформе Linux. Идея такова:
- Подключитесь к ближайшему динамику BT, который поддерживает профиль AVRCP.
- Передача звука через BT на динамик BT
- Обработка событий нажатия кнопки
Первоначально я следовал спецификации интерфейса MPRIS D-Bus: https://specifications.freedesktop.org/mpris-spec/latest/
Если я правильно понимаю, то спецификация говорит следующее:
- Запросите уникальное имя шины, которое выглядит следующим образом: org.mpris.MediaPlayer2.AnyName
- Предоставьте путь к объекту /org/mpris/MediaPlayer2.
- Implement the following interfaces:
- org.mpris.MediaPlayer2
- org.mpris.MediaPlayer2.Player
Все эти шаги сделаны. Я использую инструмент D-Feet D-bus для проверки запросов свойств, вызовов методов, и все они работают правильно.
Теперь моя проблема в том, что когда я подключаюсь к динамику BT и нажимаю кнопки, приложение не получает события.
Не могли бы вы указать, что мне не хватает и что мне делать дальше?
Заранее спасибо!
PM: Извините, если я не совсем понятен, я начинающий программист и пользователь Stackoverflow. Пожалуйста, спросите меня, нужна ли вам дополнительная информация. Буду признателен за любой ваш совет :)
EDIT1: у меня есть исходный код длиной 1200 строк, и я не знаю, что я могу извлечь из кода для вас. Но к вашему сведению, я использую поддержку D-Bus высокого уровня в GLib: https://developer.gnome.org/gio/stable/gdbus-convenience.html