Надсилання пауз / відновлення відтворення та наступних / попередніх команд Bluetooth


10

Я хотів би, щоб мій ПК Ubuntu надсилав аудіо команди Bluetooth (відтворення / пауза, наступна / попередня пісня та вгору / вниз) на інший пристрій, який передає музику через Bluetooth на нього. Іншими словами, я хотів би реалізувати свій Ubuntu ПК, "прикидаючись", начебто Bluetooth-навушниками, які здатні змінювати доріжки, робити паузу та поновлювати музику.

У мене наведено наступне налаштування, показане нижче на скріншотах Pavucontrol ( pt2пристрій підключено через Bluetooth): введіть тут опис зображення введіть тут опис зображення

У цій конфігурації потокова передача працює як очікувалося (я чую музику, що виходить з неї pt2), але я не знайшов жодного способу надіслати їй будь-який сигнал, такий як пауза / відновлення відтворення або зміна треку.

Я вже з’ясував, що існує багато протоколів Bluetooth, що дозволяють виконувати конкретні функції. Якщо я правильно зрозумів специфікації, мене цікавить A2DP - це спосіб підключення пристроїв зараз. Але під випадаючим профілем у мене є також варіанти гарнітури HSP / HFP гарнітура, шлюз HSP / HFPheadset і вимкнено.

Я буду розробляти власну програму в Python, яка дозволить надсилати такі команди, тому мені цікаво надсилати їх через API Python або через команди bash.

Я задаю це запитання, оскільки мене цікавить спосіб, яким чином я можу спілкуватися з Bluetooth-пристроями.


У мене немає приводу перевіряти, але мене також цікавить рішення, тому що я отримую ту ж проблему, в дискусії тут: ubuntuforums.org/… здається, потрібно просто додати модуль введення для завантаження, але інформація не є багато в пості.
AtomiX84

@ AtomiX84 У мене таке враження, що у мене досить протилежне питання. Я хочу, щоб на моєму комп'ютері грали навушники, а не навушники, підключені до музики рульового ПК на ньому.
pt12lol


@kenn Я хотів би побачити досить конкретну річ, а відповідь, яку ви посилаєтесь, виглядає досить загально. Чи можете ви надати більш детальний приклад, конкретний для мого випадку використання?
pt12lol

Я не фахівець у цій галузі, ви можете шукати github. Також зверніть увагу на це посилання stackoverflow.com/questions/48932249 / ...
KENN

Відповіді:


10

Натхненний @kenn, я вирішив піти глибше dbusі d-feetінструменти. Врешті-решт я досяг своєї мети за допомогою наступної команди:

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_44_78_3E_85_9D_6F org.bluez.MediaControl1.Play

що, звичайно, викликало відтворення музики на моєму мобільному пристрої, підключеному до мого ПК через Bluetooth.

Для пристроїв Bluetooth ця команда виглядатиме так:

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated> org.bluez.MediaControl1.<command_to_send>

Щоб перевірити MAC-адресу вашого пристрою, запустіть bt-devices -l. У списках будуть перелічені всі відомі (але не обов'язково підключені або навіть виявлені) пристрої з MAC-адресою в дужках.

Щоб знайти список дозволених команд, встановіть за d-feetдопомогою sudo apt install d-feet. Після його виконання, застосувати пошук bluezзапиту під час System Busзакладання і знайти запис з MAC пристроїв:

введіть тут опис зображення

Є методи, схожі на речі, для яких використовуються навушники Bluetooth під org.bluez.MediaControl1. Але, переглядаючи це дерево, ви можете знайти ШЛЯХО, це дійсно варте вашої уваги.

dbus-sendце команда для надсилання сигналів за допомогою dbus. --systemперемикач вказує на те, що ми хочемо використовувати речі з System Busвкладки d-feet. Я ще не пробував цього, але я вважаю, що --print-replyце лише для налагодження і не є обов'язковим. --dest=org.blezпосилається на Nameзаголовок d-футів. /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>і org.bluez.MediaControl1.<command>посилаються на шляхи до об'єктного дерева.


Це чудово ! Ви вказали ці dbus-sendкоманди на медіа-кнопки вашого ПК або як ви збираєтесь ним користуватися?
Роберт

1
@Robert Riedl Мені хотілося зафіксувати події кнопок геймпада і відобразити їх за допомогою певних команд, що надсилаються на мобільний пристрій, який передає музику на мій комп'ютер. Мотивацією для цього проекту був мій син, який любить бути музичним менеджером, але я не хотів, щоб він проводив занадто багато часу за екраном. Тому я вирішив надати йому інший різновид UX;)
pt12lol
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.