Чтобы использовать ваш компьютер Ubuntu в качестве устройства Bluetooth a2dp, вы должны сначала настроить его для регистрации в качестве конечной точки «приемника a2dp».
Пакет bluez в Ubuntu (10.04 и выше) включает в себя утилиту sdptool, которую можно использовать для проверки, настроено ли устройство Bluetooth в качестве приемника a2dp или нет. Вот вывод sdptool, запущенного на моей гарнитуре Bluetooth (адрес берется из диалога «Настройки Bluetooth» в gnome-control-center):
$ 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 может быть включена политика module-bluetooth, и он, возможно, уже настроил для вас устройство обратной связи, но, похоже, это не самый распространенный случай.
Полуавтоматический способ установить петлевое соединение - если у вас также установлена программа pavucontrol GUI - просто загрузить петлевой модуль и настроить его с помощью pavucontrol, поскольку PulseAudio запомнит настройки. Загрузка модуля выполняется из команды с использованием pactl:
pactl load-module module-loopback
Не бойтесь, если вы еще ничего не слышите, или если вы получаете странные эффекты обратной связи, нам нужно сообщить вновь созданному устройству, какой источник получить входной сигнал и какой приемник, чтобы отправить выход в первую очередь.
Откройте pavucontrol и откройте его вкладку Конфигурация. Убедитесь, что ваше Bluetooth-устройство отображается здесь (после сопряжения с ним с помощью blueman-manager или другого инструмента 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
Ссылки:
pactl load-module module-bluethooth-discover
Сбой команды в Ubuntu Studio 14.04. Таким образом, я не вижу никакихbluez
источниковpulseaudio
, хотя мой телефон правильно видит компьютер как приемник звука. Любые идеи?pactl list sources short
вас не отображается источник bluez, я нашел два возможных решения: callgdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connect
where (путь включает BD-адрес устройства и путь к адаптеру, по которому вы можете получитьgdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter
). Или используйте d-foot, как описано здесь . В противном случае подключитесь на стороне телефона и начните играть.Я использую blueman, установленный из программного центра Ubuntu. Щелкнув правой кнопкой мыши на значке blueman * -> «местные службы» -> аудио-> проверить, что «расширенный прием звука» не за горами. Кстати, я использую его, чтобы слушать в своем ноутбуке Ubuntu 11.10 то, что я играю на своем телефоне Android.
* Значок blueman показан в правом нижнем углу в gnome shell + ubuntu 11.10, это мой случай. Я надеюсь, что это полезно для вас.
источник
Это действительно просто сейчас в Ubuntu 12.04
Подключите ваше устройство Bluetooth
Найдите устройство Bluetooth и запомните его номер источника:
Сделайте петлю для устройства Bluetooth:
Где $ SOURCE_NUMBER - номер, который вы ранее приняли к сведению.
Например, я ввел следующее, чтобы воспроизведение звука работало:
Это оно! Я нашел решение в верхнем ответе немного сложным, поэтому я упростил его таким образом (гораздо меньше печатать и копировать / вставлять). Хотя мое решение, вероятно, сломается, если вы удалите любые аудиоустройства, перечисленные до устройства Bluetooth
pactl list sources
.Кроме того, не забудьте удалить петлевой модуль перед отключением устройства Bluetooth:
Запомните номер модуля петлевого устройства, которое вы создали:
Удалить петлевое устройство:
Предыдущие ответы были написаны до релиза 12.04, поэтому я уверен, что произошли некоторые изменения. Например, мне не нужно было вручную включать использование устройств Bluetooth в качестве источника звука (это было включено по умолчанию). Однако иногда мне приходится переключать профиль «Media Audio» в настройках Bluetooth на телефоне (Samsung Captivate работает под управлением CyanogenMod 9.1.0).
Вероятно, есть способ использовать dbus-monitor с помощью сценария оболочки для отслеживания подключений устройств Bluetooth A2DP и автоматической загрузки для него модуля обратной связи, но это немного над моей головой.
Надеюсь, нам больше не придется делать это вручную в Ubuntu 12.10.
источник
На 13.04 подключите ваше исходное устройство к ноутбуку с Ubuntu, и оно просто работает! Очень здорово обнаружить, что теперь это было так просто.
источник
В Ubuntu 16.04 это работает "из коробки".
источник
Даже более простое решение, чем ответ.
Вы можете просто пойти
Затем перезагрузите компьютер. После перезагрузки подключитесь к Bluetooth и просто воспроизведите музыку на своем телефоне. Все будет передаваться на ваш компьютер и воспроизводиться на динамиках компьютера.
И да! пожалуйста.
источник
apt-get
использует регулярные выражения, а не подстановочные знаки. Таким образом, вы понятия не имеете, что будет установлено с использованиемpulseaudio*
(подсказка: это не просто пакеты, которые начинаются сpulseaudi
). И PulseAudio уже является частью стандартной установки Ubuntu.