Um Ihren Ubuntu-Rechner als a2dp-Bluetooth-Gerät zu verwenden, müssen Sie ihn zunächst so konfigurieren, dass er sich als "a2dp sink" -Endpunkt registriert.
Das Paket bluez in Ubuntu (10.04 und höher) enthält ein Dienstprogramm namens sdptool , mit dem überprüft werden kann, ob ein Bluetooth-Gerät als a2dp-Senke konfiguriert ist oder nicht. Hier ist die Ausgabe von sdptool, die mit meinem Bluetooth-Headset ausgeführt wird (die Adresse stammt aus dem Dialogfeld "Bluetooth-Einstellungen" im 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
$
und hier ist die Ausgabe, wenn sie auf meinem lokalen Ubuntu-Rechner ausgeführt wird:
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
Dies zeigt, dass der Ubuntu-Rechner sich nicht als a2dp-Senke bewirbt. Es wirbt jedoch selbst als a2dp-Quelle:
$ 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
Auf diese Weise kann das Ubuntu-Gerät ordnungsgemäß mit dem Headset als Audioquelle gekoppelt werden. Die Verwendung des Ubuntu-Geräts als Ausgabe (Senke) für Bluetooth-Audio ist jedoch nicht möglich.
Wenn Sie /etc/bluetooth/audio.conf
Änderungen vornehmen, können Sie die Unterstützung von a2dp sink aktivieren, indem Sie diese Zeile unterhalb des [General]
Abschnitts einfügen :
Enable=Source
Dies wird beide falsch benannt - da wir hier die Unterstützung für Bluetooth-Senken und nicht die Unterstützung für Quellen hinzufügen - und widerspricht dem Kommentar in dieser Datei, der besagt, dass alle implementierten Dienste standardmäßig aktiviert sind. :(
Nachdem Sie diese Änderung vorgenommen haben, müssen Sie bluetoothd durch Ausführen neu starten sudo service bluetooth restart
.
Wenn Sie Ihr Android-Gerät und Ihren Ubuntu-Computer zuvor gekoppelt haben, während Sie diese Funktion nutzen, müssen Sie die Kopplung auf beiden Seiten löschen und erneut koppeln, damit Android Ubuntu als verfügbares Audiogerät erkennt.
Sobald Sie dies getan haben, sollte das Android-Gerät unter PulseAudio als Eingabegerät angezeigt werden. Wenn PulseAudio die neue Bluetooth-Audioquelle nicht erkennt, müssen Sie möglicherweise das Bluetooth-Modul über die Befehlszeile installieren und laden:
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
Dann müssen Sie PulseAudio anweisen, diesen Audioeingang über eine Loopback-Verbindung (eine gerade Linie von einer Quelle zu einer Senke) zu Ihrem Ausgang / Ihrer Senke (wie Ihren Lautsprechern oder einem Bluetooth-Headset) zu leiten.
In späteren Versionen von PulseAudio ist möglicherweise eine Modul-Bluetooth-Richtlinie enthalten, und es wurde möglicherweise bereits ein Loopback-Gerät für Sie eingerichtet. Dies scheint jedoch nicht der häufigste Fall zu sein.
Eine halbautomatische Methode zum Einrichten der Loopback-Verbindung - wenn Sie auch das GUI-Programm pavucontrol installiert haben - besteht darin, das Loopback-Modul zu laden und mit pavucontrol zu konfigurieren, da PulseAudio die Einstellungen speichert. Das Laden des Moduls erfolgt über den Befehl mit pactl:
pactl load-module module-loopback
Keine Angst, wenn Sie noch nichts hören oder merkwürdige Rückkopplungseffekte erhalten, müssen Sie dem neu erstellten Gerät mitteilen, von welcher Quelle die Eingabe stammt und von welcher Senke die Ausgabe zuerst gesendet werden soll.
Öffnen Sie pavucontrol und öffnen Sie die Registerkarte Konfiguration. Stellen Sie sicher, dass Ihr Bluetooth-Gerät hier angezeigt wird (nachdem Sie es mit blueman-manager oder einem anderen Bluetooth-Tool gekoppelt haben) und das Profil auf A2DP eingestellt ist. Wechseln Sie zur Registerkarte Eingabegeräte und stellen Sie sicher, dass Ihr Gerät auch hier angezeigt wird und nicht stummgeschaltet ist. Wechseln Sie nun zur Registerkarte Aufnahme, und stellen Sie sicher, dass die neu erstellte Loopback-Verbindung Ihr Gerät als Quelle verwendet. Aktivieren Sie dazu das Kontrollkästchen neben der Schaltfläche zum Stummschalten. Wechseln Sie zur Registerkarte Wiedergabe, um die Senke auszuwählen, die die Loopback-Verbindung auf dieselbe Weise verwenden soll. Wenn das Loopback-Gerät nicht in den Registerkarten angezeigt wird, stellen Sie sicher, dass alle Streams mithilfe des Auswahlfelds am unteren Rand jeder Registerkarte angezeigt werden.
Sie sollten jetzt das Audio von Ihrem Gerät, wenn es abgespielt wird, über Ihre Lautsprecher oder über die von Ihnen ausgewählte Ausgabesenke hören. Wenn Ihr Gerät nicht angeschlossen ist, greift das Loopback-Gerät auf eine verfügbare Senke und Quelle zurück, was möglicherweise nicht wünschenswert ist. Stellen Sie daher sicher, dass Sie das Loopback-Gerät stumm schalten, bis Sie es benötigen. Die Loopback-Verbindung stellt die gleiche Senke / Quelle wieder her, wenn das gleiche Bluetooth-Gerät das nächste Mal verbunden wird, dank des Moduls - * - Module wiederherstellen.
Wenn dies nicht funktioniert oder Sie pavucontrol nicht installiert haben, können Sie den Loopback stattdessen wie folgt einrichten:
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
(Ersetzen $BTSOURCE
mit dem Quellnamen für das Bluetooth - Gerät , wie durch Pulseaudio zu sehen, zum Beispiel bluez_source.14_DA_E9_2A_D7_57
, und ersetzen $SINK
mit dem Namen der Pulseaudio Ausgabe , die Sie wollen , um den Audio - Stream senden, zum Beispiel: alsa_output.pci-0000_00_1b.0.analog-stereo
Sie können ganz das Waschbecken Argument auslassen und haben es Rückfall. auf ein aktives Waschbecken und ändern Sie es später über pavucontrol.)
- Sie können finden
$SINK
mit pactl list sinks
, es wird nach einerName:
- Ebenso sieht man das
$BTSOURCE
mitpactl list sources
- Das
source_dont_move
Argument verhindert, dass die Loopback-Verbindung zu einer anderen Audioquelle zurückfällt, wenn das Bluetooth-Gerät getrennt wird. Es wird stattdessen entfernt und muss beim nächsten Mal erneut eingerichtet werden.
Hier ist , was ein Beispiel einer aussehen würde (Denken Sie daran , das zu ersetzen , :
mit _
der Bluetooth - Adresse!):
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
Wenn das Laden des Fallback-Moduls fehlschlägt, entfernen Sie das source_dont_move=yes
Argument, das zuerst in Version 1.0 verfügbar gemacht wurde. Achten Sie jedoch darauf, diese Loopback-Verbindung zu entfernen, bevor Sie das Audio beenden. Wenn beispielsweise das Mikrofon Ihres Laptops nicht stummgeschaltet ist, erhalten Sie möglicherweise ein sehr schlechtes Feedback. Führen Sie Folgendes aus, um diese Loopback-Verbindung manuell zu beenden, wenn Sie fertig sind:
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
Ersetzen Sie erneut $BTSOURCE
den Namen für die PulseAudio-Quelle, die sich auf Ihr Bluetooth-Gerät bezieht. Sie können das Modul auch mit der vom Befehl load-module zurückgegebenen ID entladen:
$ 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
Verweise:
- Blog-Beitrag , der einige Details zur Behebung dieses Problems in Ubuntu enthält.
pactl load-module module-bluethooth-discover
schlägt in Ubuntu Studio 14.04 fehl. Ich sehe also keinebluez
Quellen inpulseaudio
, obwohl mein Telefon den PC korrekt als Audiosenke ansieht. Irgendwelche Ideen?pactl list sources short
die bluez-Quelle für Sie nicht angezeigt wird, habe ich zwei mögliche Lösungen gefunden: 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 (der Pfad enthält die BD-Adresse des Geräts und den Adapterpfad, den Sie verwenden könnengdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter
). Oder benutze d-feet wie hier erklärt . Andernfalls stellen Sie eine Telefonverbindung her und spielen Sie etwas.Ich verwende blueman, installiert vom Ubuntu Software Center. Klicken Sie mit der rechten Maustaste auf das Blueman-Symbol * -> "Lokale Dienste" -> Audio -> Aktivieren Sie das Kontrollkästchen "Erweiterter Audioempfang". Übrigens verwende ich es, um in meinem Ubuntu 11.10-Laptop zu hören, was ich auf meinem Android-Handy spiele.
* Das Blueman-Symbol wird in der rechten unteren Ecke von Gnome Shell + Ubuntu 11.10 angezeigt, das ist mein Fall. Ich hoffe, das ist irgendwie nützlich für Sie.
quelle
In Ubuntu 12.04 ist es jetzt wirklich einfach
Verbinden Sie Ihr Bluetooth-Gerät
Suchen Sie nach Ihrem Bluetooth-Gerät und notieren Sie sich die Quellennummer:
Erstellen Sie einen Loopback für das Bluetooth-Gerät:
Dabei ist $ SOURCE_NUMBER die Nummer, die Sie zuvor notiert haben.
Ich habe beispielsweise Folgendes eingegeben, damit die Audiowiedergabe funktioniert:
Das ist es! Ich fand die Lösung in der oberen Antwort etwas kompliziert und vereinfachte sie auf diese Weise (viel weniger Tippen und Kopieren / Einfügen). Obwohl meine Lösung wahrscheinlich kaputt geht, wenn Sie alle vor dem Bluetooth-Gerät aufgelisteten Audiogeräte von entfernen
pactl list sources
.Vergessen Sie auch nicht, das Loopback-Modul zu entfernen, bevor Sie das Bluetooth-Gerät trennen:
Notieren Sie sich die Modulnummer des von Ihnen erstellten Loopback-Geräts:
Entfernen Sie das Loopback-Gerät:
Die vorherigen Antworten wurden vor der Veröffentlichung von 12.04 verfasst. Ich bin mir also sicher, dass sich einige Änderungen ergeben haben. Zum Beispiel musste ich die Verwendung von Bluetooth-Geräten als Audioquelle nicht manuell aktivieren (standardmäßig aktiviert). Manchmal muss ich jedoch das "Media Audio" -Profil in meinen Bluetooth-Einstellungen auf meinem Telefon umschalten (Samsung Captivate mit CyanogenMod 9.1.0).
Es gibt wahrscheinlich eine Möglichkeit, dbus-monitor mithilfe eines Shell-Skripts zu nutzen, um nach Bluetooth A2DP-Geräteverbindungen zu suchen und automatisch ein Loopback-Modul dafür zu laden, aber das geht mir ein bisschen über den Kopf.
Hoffentlich müssen wir dies in Ubuntu 12.10 nicht mehr manuell tun.
quelle
Koppeln Sie für 13.04 Ihr Quellgerät mit dem Ubuntu-Laptop und es funktioniert einfach! Sehr cool zu finden, dass es jetzt so einfach war.
quelle
In Ubuntu 16.04 funktioniert dies sofort.
quelle
Noch einfachere Lösung als die Antwort.
Sie können einfach gehen
Starten Sie dann neu. Stellen Sie nach dem Neustart eine Verbindung zu Ihrem Bluetooth her und spielen Sie einfach die Musik auf Ihrem Telefon ab. Alles wird auf Ihren Computer übertragen und über die Lautsprecher des Computers wiedergegeben.
Und ja! Bitte.
quelle
apt-get
verwendet reguläre Ausdrücke, keine Platzhalter. Sie haben also keine Ahnung, was mit installiert wirdpulseaudio*
(Hinweis: Es sind nicht nur Pakete, die mit beginnenpulseaudi
). Und PulseAudio ist bereits Teil der Ubuntu-Standardinstallation.