Щоб використовувати вашу машину Ubuntu як пристрій Bluetooth a2dp, спочатку потрібно налаштувати її для реєстрації як кінцевої точки "мийки a2dp".
Пакет bluez в Ubuntu (10.04 і вище) містить утиліту під назвою sdptool, яка може бути використана для перевірки того, чи налаштований пристрій Bluetooth як раковина a2dp чи ні. Ось вихід із sdptool, який працює проти моєї гарнітури Bluetooth (адреса взята у діалоговому вікні "Налаштування Bluetooth" у центрі gnome-control):
$ sdptool search --bdaddr 00:18:16:3A:3B:D4 a2snk
Searching for a2snk on 00:18:16:3A:3B:D4 ...
Service RecHandle: 0x10002
Service Class ID List:
"Audio Sink" (0x110b)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
$
і ось висновок під час запуску проти моєї локальної машини Ubuntu:
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
Це показує, що машина Ubuntu не рекламує себе як мийку a2dp. Однак вона рекламує себе як джерело a2dp:
$ sdptool search --bdaddr local a2src
Searching for a2src on FF:FF:FF:00:00:00 ...
Service Name: Audio Source
Service RecHandle: 0x10003
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
Це дозволяє пристрою Ubuntu правильно поєднуватися з гарнітурою як джерелом звуку, але це не дозволяє використовувати апарат Ubuntu як вихід (раковину) для аудіо Bluetooth.
Якщо ви редагуєте /etc/bluetooth/audio.conf
, ви можете увімкнути підтримку мийки a2dp, додавши цей рядок під [General]
розділом:
Enable=Source
Це і названо протизаконно - оскільки тут ми додаємо підтримку раковини Bluetooth, а не підтримку джерела, - і всупереч коментарям цього файлу, який стверджує, що всі реалізовані служби включені за замовчуванням. :(
Після внесення цієї зміни вам потрібно буде перезапустити Bluetoothd, запустивши sudo service bluetooth restart
.
Якщо ви раніше спарені пристроєм Android та комп'ютером Ubuntu, намагаючись приступити до цієї роботи, вам потрібно буде видалити пару з обох сторін і перепаровувати їх, щоб Android розпізнав Ubuntu як доступний аудіопристрій.
Після цього Android-пристрій повинен відображатись як пристрій введення під PulseAudio. Якщо PulseAudio не виявить нове джерело аудіо Bluetooth, можливо, вам доведеться встановити та завантажити модуль Bluetooth з командного рядка:
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
Тоді вам потрібно сказати PulseAudio направити цей аудіовхід до вашого виходу / раковини (наприклад, динаміків або гарнітури Bluetooth) за допомогою зворотного зв'язку (пряма лінія від джерела до раковини).
Пізніші версії PulseAudio можуть включати модуль-bluetooth-політику, і він, можливо, вже встановив пристрій для зворотного зв'язку, але це, мабуть, не найпоширеніший випадок.
Напівавтоматичний спосіб налаштування зворотного зв'язку - якщо у вас також встановлена програма GUI pavucontrol - це просто завантажити модуль зворотного звороту та налаштувати його за допомогою pavucontrol, оскільки PulseAudio запам’ятає налаштування. Завантаження модуля здійснюється з команди за допомогою pactl:
pactl load-module module-loopback
Не бійтеся, якщо ви ще нічого не чуєте, або якщо у вас з’являються дивні ефекти зворотного зв’язку, нам потрібно повідомити новоствореному пристрою, з якого джерела отримати вхід, а з якого раковини, щоб спочатку надіслати вихід.
Відкрийте pavucontrol і відкрийте вкладку Конфігурація. Переконайтеся, що ваш пристрій Bluetooth відображається тут (після з'єднання з ним за допомогою blueman-менеджера або іншого інструмента Bluetooth), а для профілю встановлено A2DP. Перейдіть на вкладку Пристрої введення та переконайтеся, що ваш пристрій відображається і тут, і він не вимкнений. Тепер перейдіть на вкладку "Запис" і змусьте новостворене з'єднання із зворотним зв'язком використовувати свій пристрій як джерело. Поле поруч із кнопкою "Відключити звук" буде вибрано поле. Перейдіть на вкладку «Відтворення», щоб обрати мийку, щоб з'єднання з петлею повинно використовуватися таким же чином. Якщо пристрій зворотного зв'язку не відображається на вкладках, переконайтеся, що всі потоки відображаються за допомогою поля вибору в нижній частині кожної вкладки.
Тепер ви повинні чути звук зі свого пристрою, якщо він відтворюється, у ваших динаміках або в будь-якому тоні виводу, який ви вибрали. Коли ваш пристрій від'єднано, пристрій циклічного відтворення повернеться до наявної раковини та джерела, що може виявитися небажаним, тому переконайтесь, що ви відключили пристрій петлі, поки не знадобиться. З'єднання із зворотним зв'язком відновить ту саму мийку / джерело при наступному підключенні того ж пристрою Bluetooth завдяки модулю - * - відновити модулі.
Якщо це не працює , або у вас не встановлено pavucontrol, ви можете замість цього встановити зворотний зв'язок, використовуючи наступний метод:
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
(Замініть $BTSOURCE
ім'я джерела для свого пристрою Bluetooth, як бачить PulseAudio, наприклад bluez_source.14_DA_E9_2A_D7_57
; замініть $SINK
ім'я виходу PulseAudio, на який ви хочете надіслати аудіопотік, наприклад:. alsa_output.pci-0000_00_1b.0.analog-stereo
Ви можете повністю залишити аргумент раковини і повернути його в запасний режим. до активної раковини, і змініть її пізніше за допомогою pavucontrol.)
- Ви можете знайти
$SINK
з pactl list sinks
, він показав післяName:
- Аналогічно можна побачити і
$BTSOURCE
сpactl list sources
- В
source_dont_move
аргументі запобігає з'єднувальний шлейф від падіння назад до іншого джерела звуку , коли пристрій Bluetooth відключено. Він замість цього видаляється, і вам доведеться налаштувати його наступного разу.
Ось що приклад один буде виглядати ( Чи не забудьте замінити :
з _
на адресу Bluetooth!):
pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
Якщо завантаження резервного модуля не source_dont_move=yes
вдалося , спробуйте видалити аргумент, він був доступний спочатку у версії 1.0. Тоді будьте обережні, проте вийміть це з'єднання із зворотним зв'язком перед тим, як відкинути цей звук, або якщо, наприклад, мікрофон вашого ноутбука відключений, ви можете отримати дуже поганий відгук. Щоб перервати це з'єднання із зворотним зв'язком вручну, закінчіть:
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
Знову замініть $BTSOURCE
ім’я джерела PulseAudio, яке посилається на ваш пристрій Bluetooth. Ви також можете розвантажити модуль за допомогою ідентифікатора, поверненого командою load-module:
$ pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
15
$ pactl unload-module 15
Список літератури: