Update 01/2018: Ich sehe gerade, dass dieser uralte Artikel immernoch häufiger aufgerufen wird. Mit einem aktuellen Ubuntu wird ein verbundener Rechner out-of-the-box zum Bluetooth-Speaker. Die unten stehende Anleitung ist bei Problemen natürlich weiterhin hilfreich.
Eine Menge Menschen betreiben ihren Medienkonsum ja mittlerweile über ihre Smartphones. Sei es nun ein Android oder ein iPhone. Ich verwalte bspw. alle meine Podcasts auf meinem iPhone im Podcatcher Downcast. Androidnutzer werden vermutlich auf Listen setzen. Ich höre Podcasts meist eh nur, wenn ich unterwegs bin, daher gibt es für mich keinen Grund mit dem Rechner zu synchronisieren.
Manchmal sitze ich aber vor dem Rechner und würde neben der Arbeit gern über die Boxen einen Podcast hören. Das ist heutzutage mit pulseaudio total einfach. Automatisch geht es leider noch nicht, aber das kriege ich auch noch hin (s. Update-Hinweis).
Zuerst muss man (mit Bordmitteln) das Telefon mit dem Computer koppeln. Das geht normalerweise out-of-the-box, weshalb ich das nicht weiter bespreche. Ist das Telefon gekoppelt, kann man es mit pulseaudio als Quelle suchen (im Terminal)):
pactl list short sources
In der Ausgabe werden dein alle Audioquellen gelistet. Eine davon sollte das Bluetooth-Gerät sein (bluez_source). Mit der Quellen-Nummer dieses Gerätes erstellen wir nun ein Loopback-Gerät, welches wir als Eingang verwenden können.
pactl load-module module-loopback source=NUMMER
Man kann das natürlich auch in einem Schritt machen
pactl load-module module-loopback source=$(pactl list short sources | grep bluez | awk '{print $1}')
Nun kann man in den Audioeinstellunges das Telefon (meines heisst MAZE ;-)) als Eingang wählen. Alles was abgespielt wird auf dem Telefon, läuft nun über die Lautsprecher des Rechners. Ist die Wiedergabe gestoppt, sollte man das Gerät wieder entfernen. Dazu listet man zunächst die genutzten Module auf.
pactl list short modules
Nun merkt man sich die Nummer des Loopback-Moduls und entfernt dieses.
pactl unload-module NUMMER
Auch dies geht natürlich in einem Schritt.
pactl unload-module $(pactl list short modules | grep loopback | awk '{print $1}')
Das ganze kann man selbstverständlich ganz einfach mit cuttlefish automatisieren (bei Bluetooth-Verbindung und -Trennung). Noch schöner wäre allerdings eine udev-Regel.