Aby używać komputera z systemem Ubuntu jako urządzenia Bluetooth a2dp, należy go najpierw skonfigurować, aby zarejestrować się jako punkt końcowy „ujścia a2dp”.
Bluez Opakowanie Ubuntu (10,04 i powyżej) zawiera program o nazwie sdptool , który może być używany do sprawdzania, czy urządzenie Bluetooth jest skonfigurowany jako zlewu a2DP czy nie. Oto wyjście z sdptool uruchomionego na moim zestawie słuchawkowym Bluetooth (adres pochodzi z okna dialogowego „Ustawienia Bluetooth” w centrum sterowania gnome):
$ 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
$
a oto dane wyjściowe po uruchomieniu na mojej lokalnej maszynie Ubuntu:
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
To pokazuje, że maszyna Ubuntu nie reklamuje się jako zlew a2dp. Jednak reklamuje się jako źródło 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
Umożliwia to maszynie Ubuntu prawidłowe sparowanie z zestawem słuchawkowym jako źródłem dźwięku, ale nie umożliwia używania maszyny Ubuntu jako wyjścia (zlewu) dla dźwięku Bluetooth.
Jeśli edytujesz /etc/bluetooth/audio.conf
, możesz włączyć obsługę ujścia a2dp, dodając ten wiersz pod [General]
sekcją:
Enable=Source
Jest to zarówno sprzeczne z intuicją - ponieważ dodajemy tutaj obsługę zlewu Bluetooth, a nie obsługę źródła - i w przeciwieństwie do komentarza w tym pliku, który twierdzi, że wszystkie zaimplementowane usługi są domyślnie włączone. :(
Po wprowadzeniu tej zmiany musisz ponownie uruchomić bluetoothd, uruchamiając sudo service bluetooth restart
.
Jeśli wcześniej sparowałeś urządzenie z Androidem i komputer Ubuntu podczas próby uzyskania tej pracy, musisz usunąć parowanie po obu stronach i ponownie je sparować, aby Android mógł rozpoznać Ubuntu jako dostępne urządzenie audio.
Gdy to zrobisz, urządzenie z Androidem powinno pojawić się jako urządzenie wejściowe w PulseAudio. Jeśli PulseAudio nie wykryje nowego źródła dźwięku Bluetooth, może być konieczne zainstalowanie i załadowanie modułu Bluetooth z wiersza poleceń:
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
Następnie musisz powiedzieć PulseAudio, aby skierowało to wejście audio do wyjścia / zlewu (takiego jak głośniki lub zestaw słuchawkowy Bluetooth) za pomocą połączenia pętli zwrotnej (prosta linia od źródła do zlewu).
Późniejsze wersje PulseAudio mogą zawierać moduł-moduł Bluetooth i może już mieć skonfigurowane urządzenie pętli zwrotnej, ale nie wydaje się to najczęstszym przypadkiem.
Półautomatycznym sposobem na skonfigurowanie połączenia pętli zwrotnej - jeśli masz również zainstalowany program GUI pavucontrol - jest po prostu załadować moduł pętli zwrotnej i skonfigurować go za pomocą pavucontrol, ponieważ PulseAudio zapamięta ustawienia. Ładowanie modułu odbywa się za pomocą komendy przy użyciu pactl:
pactl load-module module-loopback
Nie obawiaj się, jeśli jeszcze nic nie słyszysz lub otrzymujesz dziwne efekty sprzężenia zwrotnego, musimy powiedzieć nowopowstałemu urządzeniu, z którego źródła należy uzyskać sygnał wejściowy, a które zejść, aby wysłać sygnał wyjściowy jako pierwszy.
Otwórz pavucontrol i otwórz jego kartę Konfiguracja. Upewnij się, że urządzenie Bluetooth jest widoczne tutaj (po sparowaniu z nim za pomocą menedżera blueman lub innego narzędzia Bluetooth), a profil jest ustawiony na A2DP. Przejdź na kartę Urządzenia wejściowe i upewnij się, że Twoje urządzenie również się tutaj wyświetla i nie jest wyciszone. Teraz przejdź do zakładki Nagrywanie i spraw, aby nowo utworzone połączenie pętli zwrotnej używało urządzenia jako źródła z polem wyboru obok przycisku wyciszenia. Przejdź do karty Odtwarzanie, aby wybrać zlew, z którego połączenie pętli zwrotnej powinno korzystać w ten sam sposób. Jeśli urządzenie pętli zwrotnej nie wyświetla się na kartach, upewnij się, że wszystkie strumienie są wyświetlane przy użyciu pola wyboru u dołu każdej karty.
Powinieneś teraz usłyszeć dźwięk z urządzenia, jeśli jest odtwarzane, w głośnikach lub w dowolnym z wybranych odbiorników wyjściowych. Gdy urządzenie zostanie odłączone, urządzenie sprzężenia zwrotnego powróci do dostępnego zlewu i źródła, co może nie być pożądane, więc upewnij się, że wycisziłeś urządzenie sprzężenia zwrotnego, dopóki go nie potrzebujesz. Połączenie pętli zwrotnej przywróci to samo ujście / źródło przy następnym podłączeniu tego samego urządzenia Bluetooth dzięki modułowi - * - przywracającym moduły.
Jeśli to nie zadziała lub nie masz zainstalowanego pavucontrol, możesz zamiast tego ustawić pętlę zwrotną, stosując następującą metodę:
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
(Zamień $BTSOURCE
na nazwę źródła dla urządzenia Bluetooth widoczną w PulseAudio, np. bluez_source.14_DA_E9_2A_D7_57
I zamień $SINK
na nazwę wyjścia PulseAudio, do którego chcesz wysłać strumień audio, na przykład:. alsa_output.pci-0000_00_1b.0.analog-stereo
Możesz całkowicie pominąć argument sink i spowodować awarię do aktywnego zlewu i zmień go później za pomocą pavucontrol.)
- Możesz znaleźć za
$SINK
pomocą pactl list sinks
, jest pokazane poName:
- Podobnie można zobaczyć za
$BTSOURCE
pomocąpactl list sources
- W
source_dont_move
zapobiega argument połączenia sprzężenia zwrotnego z sięgnięcie do innego źródła dźwięku, gdy urządzenie Bluetooth jest przerywane. Zamiast tego jest usuwany i następnym razem będziesz musiał go skonfigurować ponownie.
Oto czym jest przykładem będzie wyglądać (Pamiętaj, aby zastąpić :
ze _
w adresie 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
Jeśli ładowanie modułu rezerwowego nie powiedzie się, spróbuj usunąć source_dont_move=yes
argument, najpierw udostępniono go w wersji 1.0. Uważaj jednak, aby usunąć to połączenie pętli zwrotnej przed upuszczeniem tego dźwięku, lub jeśli na przykład mikrofon laptopa nie jest wyciszony, możesz otrzymać bardzo złe opinie. Aby ręcznie porzucić to połączenie zwrotne, gdy skończysz, uruchom:
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
Ponownie zamień $BTSOURCE
na nazwę źródła PulseAudio, która odnosi się do twojego urządzenia Bluetooth. Możesz również zwolnić moduł, używając identyfikatora zwróconego przez polecenie 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
Bibliografia:
- Wpis na blogu opisujący niektóre szczegóły, jak to naprawić w Ubuntu.
pactl load-module module-bluethooth-discover
kończy się niepowodzeniem w Ubuntu studio 14.04. Więc nie widzę żadnychbluez
źródełpulseaudio
, nawet jeśli mój telefon prawidłowo widzi komputer jako zlew audio. Jakieś pomysły?pactl list sources short
nie wyświetla dla ciebie źródła bluez, znalazłem dwa możliwe rozwiązania: zadzwońgdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connect
gdzie (ścieżka zawiera adres BD urządzenia i ścieżkę adaptera, którą możesz uzyskaćgdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter
). Lub użyj d-stóp, jak wyjaśniono tutaj . W przeciwnym razie połącz się po stronie telefonu i zacznij grać.Używam bluemana, instalowanego z centrum oprogramowania Ubuntu. Kliknięcie prawym przyciskiem myszy ikony blueman * -> „lokalne usługi” -> audio-> Sprawdź, czy „zaawansowany odbiór audio” jest wskazany. Przy okazji używam go do słuchania w moim laptopie z Ubuntu 11.10 tego, co gram na telefonie z Androidem.
* Ikona bluemana jest pokazana w prawym dolnym rogu w gnome shell + ubuntu 11.10, tak jest w moim przypadku. Mam nadzieję, że jest to dla ciebie przydatne.
źródło
W Ubuntu 12.04 jest to teraz naprawdę proste
Podłącz swoje urządzenie Bluetooth
Wyszukaj urządzenie Bluetooth i zanotuj jego numer źródłowy:
Wykonaj sprzężenie zwrotne dla urządzenia Bluetooth:
Gdzie $ SOURCE_NUMBER jest liczbą, którą wcześniej zanotowałeś.
Na przykład wpisałem następujące polecenie, aby uruchomić odtwarzanie dźwięku:
Otóż to! Rozwiązanie w górnej odpowiedzi uważam za nieco skomplikowane, więc uprościłem to w ten sposób (znacznie mniej pisania i kopiowania / wklejania). Chociaż moje rozwiązanie prawdopodobnie się zepsuje, jeśli usuniesz jakieś urządzenia audio wymienione przed urządzeniem Bluetooth przez
pactl list sources
.Nie zapomnij również usunąć modułu sprzężenia zwrotnego przed odłączeniem urządzenia Bluetooth:
Zanotuj numer modułu utworzonego urządzenia sprzężenia zwrotnego:
Usuń urządzenie sprzężenia zwrotnego:
Poprzednie odpowiedzi zostały napisane przed wydaniem 12.04, więc jestem pewien, że były pewne zmiany. Na przykład nie musiałem ręcznie włączać korzystania z urządzeń Bluetooth jako źródła dźwięku (było domyślnie włączone). Czasami jednak muszę przełączać profil „Media Audio” w ustawieniach Bluetooth w telefonie (Samsung Captivate z CyanogenMod 9.1.0).
Prawdopodobnie istnieje sposób na wykorzystanie dbus-monitor za pomocą skryptu powłoki, aby obserwować połączenia urządzeń Bluetooth A2DP i automatycznie ładować dla niego moduł sprzężenia zwrotnego, ale to trochę przesada.
Mamy nadzieję, że nie będziemy już musieli tego robić ręcznie w Ubuntu 12.10.
źródło
W przypadku wersji 13.04 sparuj urządzenie źródłowe z laptopem ubuntu i po prostu działa! Bardzo fajnie było stwierdzić, że teraz było to takie proste.
źródło
W Ubuntu 16.04 działa to od razu po wyjęciu z pudełka.
źródło
Jeszcze łatwiejsze rozwiązanie niż odpowiedź.
Możesz po prostu iść
Następnie uruchom ponownie. Po ponownym uruchomieniu połącz się z Bluetooth i po prostu odtwarzaj muzykę z telefonu. Wszystko zostanie przesłane do komputera i odtworzone na głośnikach komputera.
I tak! nie ma za co.
źródło
apt-get
używa wyrażeń regularnych, a nie symboli wieloznacznych. Więc nie masz pojęcia, co zostanie zainstalowanepulseaudio*
(wskazówka: nie tylko pakiety zaczynają się odpulseaudi
). PulseAudio jest już częścią domyślnej instalacji Ubuntu.