Я новачок в Linux і також новий в сценаріях Bluetooth. Я відкрив для себе наступне:
- Bluez - це стек BT за замовчуванням.
- BluezTools - це набір утиліт, за допомогою яких можна легше взаємодіяти з Bluez
- DBus - це інтерфейс, з яким підключається Bluez, безпосередньо взаємодіючи з обладнанням.
- PulseAudio - це підсистема, відповідальна за виробництво звуку в системі.
Це має сенс. Тож скажімо, у мене є набір навушників BlueTooth, що я б очікував - це все (після пари та довіри), щоб можна було випустити команду, яка зможе підключитися безпосередньо до певного профілю в навушниках BT.
Маю на увазі технічний шлях, який би я мав на увазі:
- Увімкніть навушники
- Видайте команду BluezTools - наприклад, bt-audio -c
- Зачекайте, коли пристрій підключиться до послуги, яку я перебуваю після
- Тепер PulseAudio повинен забрати новий вихідний пристрій
- Випустіть ще одну команду, щоб змінити звук з того, що було на новий вихідний аудіо (навушники BT).
- Насолоджуйтесь безпроблемним прослуховуванням.
Це все здається логічним, але реальна реалізація не така, і я шукаю ЧОМУ, тому я можу краще зрозуміти проблему і спробувати її виправити.
Ось що насправді відбувається:
- Увімкніть навушники
- Видайте команду BluezTools - наприклад, bt-audio -c
- Зачекайте, коли пристрій підключиться до послуги, яку я перебуваю після
- Тепер PulseAudio повинен забрати новий вихідний пристрій
- Видайте команду PulseAudio для зміни звукового профілю з якості телефону на високу точність.
Дозвольте мені трохи розширити цю проблему. Гарнітура Bluetooth пропонує 2 режими якості (телефон і висока вірність). Лише 1 справді підходить для прослуховування музики.
Я б очікував, що навушники BT виставляють кожен режим якості як послугу, це правильно? Це припущення може бути помилковим, але я б очікував чогось подібного
bt-audio -c highFidelityProfile
або
bt-audio -changeProfile highFidelityProfile
Натомість здається, що Bluez просто обробляє з'єднання RAW до пристрою, і звідти вам потрібно видати: pacmd set-card-profile $ INDEX a2dp
Це просто здається принципово неправильним. Чому контроль якості в аудіосистемі, отже, вимагає іншої реалізації для імпульсу або альси, або будь-якої іншої підсистеми звуку?
Що я пропускаю? Чому не можливо підключитися безпосередньо до певного профілю за допомогою Bluez / BluezTools тощо?