Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben ohne udev und systemd

Beitrag von smutbert » 17.09.2019 11:34:41

Wenn ich es recht verstanden habe willst du den eingebauten Lautsprecher als default, aber weder
- manuell umschalten noch
- automatisch umschalten lassen?
Darf ich fragen, wie du es dir sonst vorstellst? :mrgreen:
guennid hat geschrieben: ↑ zum Beitrag ↑
17.09.2019 10:21:48
Ein Bluetooth-Gerät als Lautsprecher auszuwählen, bevor irgendein Ton-Programm gestartet wird, erscheint mir als für mich zu komplex angesichts deines Hinweises:
Hm, ich weiß halt leider nicht wieviel Funktionalität Pulseaudio bei dir gegenüber einem System mit systemd/udev und gegebenenfalls einer vollständigieren Desktopumgebung fehlt.
Bei mir verhält sich Pulseaudio unter Gnome relativ schlau. Wenn ich die Audioausgabe des Videoplayers auf Bluetooth umschalte, merkt sich das System das, auch über Neustarts hinweg.
Ist das Bluetoothgerät nicht verbunden, fällt die Audioausgabe dagegen auf das Defaultgerät zurück (deshalb heißt es in pavucontrol auch nicht „default“ oder „Vorgabe“ sondern „Als Ausweichoption setzen“).

Nur das mit dem automatischen Verbinden ist auch bei mir etwas unverhersehbar.
Mit manchen bereits gepairten Geräten verbindet sich das System zuverlässig automatisch mit anderen nur gelegentlich oder überhaupt nicht, aber mit bluetoothctl funktioniert es immer.


Stehenbleiben sollte das Video aber auch bei Verbindungsabbrüchen nicht.

guennid

Re: Bluetooth-Lautsprecher betreiben ohne udev und systemd

Beitrag von guennid » 17.09.2019 15:19:25

smutbert hat geschrieben:Wenn ich es recht verstanden habe willst du den eingebauten Lautsprecher als default, aber weder
- manuell umschalten noch
- automatisch umschalten lassen?
Nein, da hast du mich etwas missverstanden. Mag an mir liegen. Im Bemühen, mich möglichst präzise und eindeutig auszudrücken, erreiche ich oft das Gegenteil - aber das kennnst du ja! :wink:

Also, ich will „den eingebauten Lautsprecher als default“ und „manuell umschalten“ können. Und das scheint jetzt mit dem Kopfhörer auch zu funktionieren.
smutbert hat geschrieben:Ist das Bluetoothgerät nicht verbunden, fällt die Audioausgabe dagegen auf das Defaultgerät zurück.
Zumindest nach Video-Neustart ist das auch hier so - ganz ohne systemd, udev und DE. :wink: Ob auch während der Wiedergabe, müsste ich probieren, ist mir aber nicht besonders wichtig.

Interesse hätte ich daran durchzublicken, wie das, was wir hier mit pulse-/bluetooth-audio durchkonfiguriert haben, sich verhält im Zusammenspiel mit den Audio-Voreinstellungen der verschiedenen Wiedergabeprogramme (ich benutze smplayer (in der Regel), mpv, ffplay und vlc), bzw. was passierte, wenn man jetzt auch noch daran drehte. Aber ich fürchte, das ist für mein Hirn dann echt zu komplex. Vielleicht sollte ich da einfach mal auf Pöttering vertrauen. :wink:

Auf alle Fälle danke ich noch mal ausdrücklich für deine hilfreiche Unterstützung. Ich glaube nicht, dass ich bei den vielen „Irrungen, Wirrungen“ ohne die einigermaßen zu Rande gekommen wäre! :THX:

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben ohne udev und systemd

Beitrag von smutbert » 20.09.2019 22:35:39

Schön, wenn ich helfen konnte, auch wenn ich bei dir immer das Gefühl habe, dass gar keine Hilfe notwendig gewesen wäre
guennid hat geschrieben: ↑ zum Beitrag ↑
17.09.2019 15:19:25
[...]
Interesse hätte ich daran durchzublicken, wie das, was wir hier mit pulse-/bluetooth-audio durchkonfiguriert haben, sich verhält im Zusammenspiel mit den Audio-Voreinstellungen der verschiedenen Wiedergabeprogramme (ich benutze smplayer (in der Regel), mpv, ffplay und vlc), bzw. was passierte, wenn man jetzt auch noch daran drehte. [...]
An welche Audio-Voreinstellungen hast du dabei gedacht?

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 21.09.2019 12:32:32

smutbert hat geschrieben:An welche Audio-Voreinstellungen hast du dabei gedacht?
Komm' ich noch drauf zurück. Im Moment hapert's mit pulse und T430. Dazu werde ich aber erstmal eine ältere smutbert-Hilfe kontaktieren, von der ich augenblicklich glaube, dass die auch dieses Problem zu lösen geeignet ist.
smutbert hat geschrieben:auch wenn ich bei dir immer das Gefühl habe, dass gar keine Hilfe notwendig gewesen wäre
Das fühlst du meiner Meinung nach völlig falsch. :wink:

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 19:41:58

smutbert hat geschrieben:An welche Audio-Voreinstellungen hast du dabei gedacht?
Bei smplayer steht z.Z. Ausgabetreiber (was immer das sein mag?): „Standard“ bei vlc Ausgabemodul: „Pulseaudio-Audioausgabe“ Bluetooth-Lautsprecher funktioniert via pulseaudio mit beiden. Beide Felder könnte ich auf „alsa“ setzen. Gäb's dann auf der Maschine kein buetooth mehr? Gibt's 'ne Korrelation zwischen den in den Playern eingestellten Ausgabe-Modulen/-Treibern und pulseaudio?

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 22.09.2019 19:59:09

Es mag auf den ersten Blick unübersichtlich sein, aber eigentlich ist es recht einfach:


Pulseaudio bietet seine eigene Softwareschnittstelle für die Audiowiedergabe an, die Anwendungen nutzen können und vlc beispielsweise kann und macht das, dann steht bei den Audioeinstellungen wahrscheinlich „Pulseaudio“ oä.
Anwendung → Pulseaudio → Treiber (Pulseaudio Bluetooth oder Alsa oder OSS oder ...)

Weil aber sehr viele Programme nach wie vor nur Alsa als Schnittstelle unterstützen, klinkt sich Pulseaudio über ein Alsa-Plugin auch dort ein und wird damit in Alsa zu einer Art virtueller Soundkarte, die dann auch gleich als default-Gerät eingerichtet wird. Wählst du also einfach Alsa statt Pulseaudio aus, sollte sich erst einmal gar nichts ändern, außer dass der Wiedergaberegler in pavucontrol für dieses Programm dann wahrscheinlich anders heißt.
Anwendung → Alsa (Pulseaudio-Plugin) → Pulseaudio → Treiber (Pulseaudio Bluetooth oder Alsa oder OSS oder ...)

Ändern tut sich erst etwas, wenn du außerdem noch bei den Audioeinstellungen ein anderes Alsa-Gerät auswählst. Dann läuft die Wiedergabe an Pulseaudio vorbei nur über Alsa und ohne den Pulseaudio-Umweg stehen dir auch die Bluetoothgeräte nicht mehr zur Verfügung.
In der Vergangenheit habe ich immer empfohlen beim Einsatz von Pulseaudio die Existenz von Alsa sozusagen zu ignorieren. Pulseaudio soll ja von der Hardware und deren Treibern abstrahieren und wenn man sich dann in das darunterliegende Alsa einmischt, kommt man sich schnell ins Gehege. (Ich muss aber auch zugeben, dass ich mich selbst nicht an meine Empfehlungen halte.)
Anwendung → Alsa (möglicherweise irgendwelche Alsa Plugins → Alsa Treiber)


(So nebenbei würde es mich ja ein kleines bisschen interessieren wie leicht es ist, das bluez-alsa-Paket vom Raspberry Pi für amd64 zu bauen. Würde dich Audio mit Bluetooth ohne Pulseaudio interessieren? (das wäre eine mögliche Motivation das zu machen, ich selbst brauche es nicht))

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 20:12:55

smutbert hat geschrieben:Würde dich Audio mit Bluetooth ohne Pulseaudio interessieren?
Interessieren tät's mich schon. Aber ich habe so vielfältige Interessen, von Waldarbeit über Handwerkern, Singen, Geschichte bis zu Sparring mit Pöttering. Von allem versteh' ich 'n bisschen, aber nix richtig. :wink: Ich weiß nicht, ob ich da noch 'ne Baustelle aufmachen soll. Die erste Hürde wäre, wo kriegt man die Sourcen her?

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 22.09.2019 20:30:10

ich denke von hier: https://github.com/Arkq/bluez-alsa
Allerdings habe ich beim Schreiben dieses Beitrags gerade entdeckt, dass es in Repositories von/für den Raspbery Pi das Paket sogar bereits für amd64 gibt und überraschenderweise für alle Architekturen unter dem Namen bluealsa: http://archive.raspberrypi.org/debian/p ... /bluealsa/

So wie es aussieht genügt
- herunterladen (bluealsa_0.12_amd64.deb)
- installieren
- als Benutzer

Code: Alles auswählen

/usr/bin/bluealsa --disable-hfp
starten
- den letzten Schritt dieser Anleitung https://geeks-r-us.de/2017/08/18/blueto ... pberry-pi/ durchlesen oder sogar befolgen
(die letzten paar Zeilen ab „Nun kann über den Bluetooth LautsprecherSound abgespielt werden.“, den Rest inklusive bluetoothctl kennst du ja schon)

Wenn das wirklich funktioniert wäre es enttäuschend einfach, nur für das Umschalten zwischen Bluetoothgerät und eingebauten Lautsprecher habe ich bei Alsa keine Idee, die ich für bequem und verlässlich halte – das geht mit Pulseaudio schon wesentlich einfacher und das müsstest du wohl komplett deinstallieren um bluealsa ausprobieren zu können.

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 21:26:08

Hmmm,

einen apt-fähigen Eintrag für die sources.list habe ich gefunden: deb http://archive.raspberrypi.org/debi ... ch main ui Ich sehe bei mir mit apt-get keine zusätzlichen Abhängigkeiten, demzufolge könnte es auch per dpkg funktionieren. Aber wie sieht das aus mit einem Signierschlüssel? Dazu habe ich nichts gefunden.

Grüße Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 22.09.2019 21:43:36

Ja, die Abhängigkeiten habe ich mir angesehen bevor ich meinen letzten Beitrag gepostet habe.

Den öffentlichen Schlüssel gibt es vermutlich im Paket raspberrypi-archive-keyring (aber ich würde einfach das eine Paket so herunterladen).

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 22.09.2019 21:52:43

Danke sehr!

Mal sehen. Wenn ich Zeit finde, probiere ich das auf einer älteren Test-Maschine (T42, ich hab's nun mal mit Thinkpads :wink: ) aus. Ich will mir ja nicht nach einem halben Jahr mühsamer - wenn auch sporadischer - Arbeit die Konfiguration meines schönen T430 wieder versauen. :wink:

Im Übrigen, nachdem das nun funktioniert hat, geh' ich's wahrscheinlich auch auf dem uralten eeepc 4g noch mal an. Und wenn's denn funktioniert, kriegt der einen fetten Bose-Lautsprecher verpasst! :mrgreen:

guennid

Re: (gelöst) Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 08.10.2019 18:18:17

So, ich versuche das jetzt mal mit bluealsa unter stretch auf eeepc. Ich fürchte, ein upgrade auf buster wird das bluetooth-audio via PA nicht überleben (kein pavucontrol mehr ohne systemd). Dabei stößt mir merkwürdig auf: Die neueste bluealsa-Version ist 0.13. Für amd64 gibt die sich mit stretch-libc6_2.24 zufrieden. i386 verlangt aber 2.28. Auf dem eeepc müsste ich zurückgehen bis bluealsa-0.7. Sollte ich das tun?

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 08.10.2019 21:48:51

Entweder das oder versuchen das Paket aus den Quellen für/mit der älteren libc zu bauen.

Es war zwar meine Idee, aber ich habe nicht ausprobiert ob es überhaupt funktioniert. Als Ausweg bliebe sonst noch die Möglichkeit gleich raspbian zu installieren, das es zu meiner Überraschung auch für PCs gibt. (systemd sollte sich dort jedenfalls ähnlich einfach (oder schwierig) ausbauen lassen wie unter Debian.)

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 08.10.2019 22:35:07

Ist das nicht ein Bug, dass ein Paket in der 64bit-Version mit einer lib zufrieden ist, während das gleiche Paket für eine 32bit-Version eine neuere verlangt? Aber lassen wir das einstweilen.

Ich habe pulseaudio deinstalliert und bluealsa-0.7 installiert. In dem von dir verlinkten Thread arbeitet der Autor ja mit systemd. Ich habe das Kommando

Code: Alles auswählen

/usr/bin/bluealsa --disable-hfp
, das er in eine Unit steckt, zum Testen vor dem Start von bluetoothctl mal händisch ausgeführt. Danach kann ich den Lautsprecher mit bluetoothctl verbinden (connect), aber Töne konnte ich ihm bisher nicht entlocken. Ich teste nach wie vor mit Videos. Die habe ich und nen Springsteen als mp3 hätt' ich auch noch. Aber ob sich in den Tiefen des Systems eine *.wav-Datei zum Testen finden lässt - wie sie überall wie sauer Bier zum Testen propagiert wird, weiß ich nicht und habe ich auch keine Lust zu suchen.

Grüße, Günther

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von pferdefreund » 09.10.2019 10:04:39

Dann mach dir doch ne .wav draus. Ffmpeg kann das bestimmt - oder auch andere Tools.

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 10:08:46

Bei Alsa musst du halt auch das Bluetoothgerät als Ausgabeziel angeben. Die .asoundrc in der verlinkten Anleitung sorgt nur für die richtige Konfiguration der Bluetooth-Verbindung, aber nicht dafür, dass die Ausgabe per default beim Bluetoothgerät landet.

Wahrscheinlich hast du bereits genug wav-Dateien am System (du wirst wahrscheinlich Debianalsa-utils installiert haben). Testen würde dann ich fürs erste mit

Code: Alles auswählen

$ aplay -D bluealsa /usr/share/sounds/alsa/Front_Left.wav
Wenn das nicht funktioniert versuch alternativ die Optionen gleich in den Befehl einzubauen (die X stehen wieder für die Mac-Adresse der Bluetoothlautsprecher)

Code: Alles auswählen

$ aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/Front_Left.wav

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 10:59:38

Code: Alles auswählen

$ aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/Front_Left.wav
Funktioniert!!!

Ich hatte das Kommando zwischenzeitlich auch hier (1) gefunden und mit meinem Video als Tonquelle versucht, aber da kam nichts als ziemlich lauter Lärm aus dem Lautsprecher, dem Bluetooth-Lautsprecher, immerhin!

Ich habe die Logik dieses bluealsa-Teils noch nicht durchschaut. Trifft zu, dass das Ding als erstes irgendwie gestartet werden muss, bevor man mit bluetoothctl loslegt? Wenn ich recht erinnere, funktionierte das Verbinden des Lautsprechers mit bluetoothctl nicht, ohne vorher das hier aus dem angegebenen Link zu starten:

Code: Alles auswählen

bluealsa --disable-hfp &
. Was ich da getan habe, weiß ich noch nicht so recht.

(1) https://forum.armbian.com/topic/6480-bl ... ulseaudio/

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 11:47:32

Ja, bluealsa musst du irgendwie starten. (Meinem Verständnis nach ist das eine Art Dämon, der die Daten von Alsa entgegennimmt und an den Bluetoothlautsprecher ausgibt.)
Wahrscheinlich läuft es auf ein init-Skript hinaus. Ich habe bis jetzt kein fix-und-fertig-passendes in den Untiefen des Internets gefunden – notfalls müssen wir (bzw. mußt du ) eben selbst kreativ werden. Normalerweise würde ich möglicherweise empfehlen bluealsa mit einer udev-Regel zu starten, damit es für einen gerade erst angesteckten Bluetooth-Stick aktiv wird, aber das ist auf deinem System wohl auch nicht möglich.

Die simpelste Lösung wäre natürlich

Code: Alles auswählen

export LIBASOUND_THREAD_SAFE=0
/usr/bin/bluealsa -S &
an die »/etc/rc.local« anzuhängen – möglicherweise funktioniert das ja bereits gut genug?
guennid hat geschrieben: ↑ zum Beitrag ↑
09.10.2019 10:59:38
. Was ich da getan habe, weiß ich noch nicht so recht.

(1) https://forum.armbian.com/topic/6480-bl ... ulseaudio/
Ich auch nicht, aber ich gehe einmal davon aus, dass du keine systemd-units angelegt hast :wink:
Darüber hinaus glaube und hoffe ich, dass du nicht bluealsa aus den Quellen kompiliert hast, wie in deinem Link beschrieben.
Sonst steht in der Anleitung ja nicht viel Aufregendes, außer vielleicht den Befehlen für die Sprachausgabe (aber die willst du eh nicht, oder?).


Nachdem der BT-Lautsprechers bereits gepairt ist, musst du eigentlich nur bluealsa starten und wir müssen uns noch etwas für die Alsakonfiguration überlegen, damit der Ton auch immer dort landet wo du ihn gerne hättest. (Ich habe es schon erwähnt: ich kenne keinen Weg das ähnlich zu automatisieren wie das mit pulseaudio möglich ist, aber irgendeine Lösung, mit der du dich arrangieren kannst werden wir schon finden.)
Hast jetzt eigentlich schon eine ~/.asoundrc angelegt?

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 13:55:19

smutbert hat geschrieben:Meinem Verständnis nach ist das eine Art Dämon, der die Daten von Alsa entgegennimmt und an den Bluetoothlautsprecher ausgibt.
Das vermute ich auch. Um dessen automatisierten Start kann man sich später kümmern (rc.local, z.B.)
smutbert hat geschrieben:Darüber hinaus glaube und hoffe ich, dass du nicht bluealsa aus den Quellen kompiliert hast, wie in deinem Link beschrieben.
Nein nein. Ich habe wie gesagt, das bluealsa-0.7.deb genommen
smutbert hat geschrieben:Nachdem der BT-Lautsprechers bereits gepairt ist, musst du eigentlich nur bluealsa starten
Ich denke eher umgekehrt. Ich meine bluetoothctl (pairen/connecten) wäre nicht möglich gewesen ohne vorher bluealsa gestartet zu haben - mag mich aber irren, ich probiere mehr oder weniger blind.

Im Moment scheint mir das Hauptproblem, rauszufinden, warum mit dem aplay-Kommando eine dieser skurrilen *.wav-Dateien (skurril für mich deshalb, weil ich die in den vorangegangenen 18 Debian-Jahren noch nie angefasst habe :wink: ) abzuspielen ist, nicht aber der Ton eines mkv-Videos. In dem Zusammenhang habe ich mich noch nicht an die Anlage einer~/.asoundrc gewagt.

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 14:12:02

guennid hat geschrieben: ↑ zum Beitrag ↑
09.10.2019 13:55:19
Ich denke eher umgekehrt. Ich meine bluetoothctl (pairen/connecten) wäre nicht möglich gewesen ohne vorher bluealsa gestartet zu haben - mag mich aber irren,
Nein, du irrst dich nicht. Ich meinte eher die Maßnahmen zur Antriebnahme es BT-Lautsprechers als großes Ganzes, nicht die konkrete zeitliche Abfolge:
- (Automatisches) Starten von bluealsa → noch zu erledigen
- Pairing → erledigt
- Connect → erfolgt nach dem Pairing automatisch (oder sollte es zumindest)
- Konfiguration von Alsa:

Nachdem du mehrere Soundkarte/Audiogeräte hast, ist das Anlegen einer ~/.asoundrc (oder der systemweiten Variante davon /etc/asound.conf) wohl die einfachste Möglichkeit festzulegen worüber du die Ausgabe hören willst oder wie hast du bei der Wiedergabe des Videos festgelegt (oder festzulegen versucht), dass der Ton über die BT-Lautsprecher kommen soll?

Kannst du einmal die Ausgabe von

Code: Alles auswählen

aplay -l
bei verbundenem BT-Lautsprecher posten.

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 15:23:49

wie hast du bei der Wiedergabe des Videos festgelegt (oder festzulegen versucht), dass der Ton über die BT-Lautsprecher kommen soll?
Gar nicht. Ich hatte gehofft, dass der Ton mit

Code: Alles auswählen

$ aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /home/[user]/video.mkv
abgespielt würde, so wie er ja auch bei Verwendung der Front_Left.wav abgespielt wurde.

Hmmm:

Code: Alles auswählen

# aplay -l
bash: aplay -l: Kommando nicht gefunden.
aplay ist Bestandteil von Debianalsa-utils, wenn ich recht sehe. Das ist installiert. :?: :?: :?:

Aha! Der sagt erst was über die Sound-Hardware, wenn eine Ton-Datei offen ist. So sieht's jetzt aus.

Code: Alles auswählen

$ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Intel [HDA Intel], Gerät 0: Generic Analog [Generic Analog]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 16:14:47

aplay ist ein sehr simples Programm, das kann nur mit (unkomprimierten) PCM-Daten umgehen. Deshalb ist es auch bei der Fehlersuche und beim Ausprobieren von Konfigurationen sehr nützlich – es bringt kaum zusätzliche mögliche Fehlerquellen ins Spiel.
aplay -l sollte ohne laufende Wiedergabe dieselben Ergebnisse liefern wie mit und ich habe keine Ahnung was beim ersten aplay -l schief gelaufen ist – ich vermute da ist zwishen aplay und -l irgendetwas anderes als ein normales Leerzeichen gerutscht.


Als minimale ~/.asoundrc für die Bluetooth-Wiedergabe hätte ich mir ungefähr das hier vorgestellt:

Code: Alles auswählen

defaults.bluealsa {
	interface "hci0"
	device "XX:XX:XX:XX:XX:XX"
	profile "a2dp"
}

pcm.!default { 
	type plug
	slave.pcm "bluealsa"
}
Probier zuerst einmal aus, ob ein simples

Code: Alles auswählen

aplay /usr/share/sounds/alsa/Front_Left.wav
funktioniert und wenn ja, kannst du auch gleich die Videowiedergabe testen (nicht mit aplay sondern mit einem Videoplayer).

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 17:02:42

Ich habe keine Ahnung von dem, was du mich in diese .asoundrc schreiben lässt. Ich habe noch nie eine erstellt. Also wenn ich recht sehe, dann stellt die mir in der von dir beschriebene Form die Tonausgabe dauerhaft auf den BT-Lautsprecher um - richtig? - Nicht das, was ich eigentlich will, aber lassen wir's erst mal dabei. Ich kann ja durch Löschen den vorherigen Zustand wiederherstellen - richtig?.

die left_font.wav wird auch nach der Anlage deiner .asoundrc darüber „abgespielt“. Das Video, abgespielt mit smplayer ist jetzt stumm. Versuche ich den Springsteen (mp3) mit aplay abzuspielen kommt das hier:

Code: Alles auswählen

~$ aplay [musik].mp3
Wiedergabe: Rohdaten '[musik].mp3' : Unsigned 8 bit, Rate: 8000 Hz, mono
aplay: set_params:1363: Fehler beim Setzen der Hardware-Parameter:
ACCESS:  RW_INTERLEAVED
FORMAT:  U8
SUBFORMAT:  STD
SAMPLE_BITS: 8
FRAME_BITS: 8
CHANNELS: 1
RATE: 8000
PERIOD_TIME: (85333 85334)
PERIOD_SIZE: (682 683)
PERIOD_BYTES: (682 683)
PERIODS: (5 7)
BUFFER_TIME: 511875
BUFFER_SIZE: NONE
BUFFER_BYTES: 4095
TICK_TIME: 0
ebenfalls kein Ton.

Benutzeravatar
smutbert
Moderator
Beiträge: 8317
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von smutbert » 09.10.2019 17:27:34

Das in der .asoundrc ist nichts geheimnisvolles, im Abschnitt defaults.bluealsa werden die Standardeinstellungen für bluealsa festgelegt und zwar genau dieselben, die wir bei dem Kommando

Code: Alles auswählen

aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/Front_Left.wav
explizit angegeben haben (der erste Bluetoothadapter hci0, Mac-Adresse des Bluetoothgeräts und das verwendete BT-Profil)

Der zweite Abschnitt pcm.!default legt fest, dass die Wiedergabe per default über bluealsa laufen soll. Das type plug sorgt dafür, dass die Wiedergabe davor noch durch das plug-Plugin von alsa läuft, das sorgt dafür, dass die Audiodaten in ein Format konvertiert werden, mit dem bluealsa etwas anfangen kann.
Nun könnte es sein, dass genau das mit smplayer fehlschlägt, zum Beispiel weil bluealsa behauptet Formate zu verstehen, mit denen es doch nicht läuft oder es ist irgendetwas anderes.

Gibt es von smplayer möglicherweise irgendwelche (Fehler)meldungen?

Das Abspielen einer mp3-Datei könntest du auch mit ffplay (Debianffmpeg) oder play (Debiansox) testen.

Und ja du kannst du .asoundrc einfach löschen, dann ist alles beim Alten. Neustart ist auch keiner notwendig. Damit Änderungen an der .asoundrc wirksam werden, musst du nur das tonausgebende Programm, zum Beispiel smplayer beenden und neu starten.

guennid

Re: Bluetooth-Lautsprecher betreiben (ohne udev, systemd)

Beitrag von guennid » 09.10.2019 18:43:29

So, es wird Zeit, mich zu bedanken! :THX:

In smplayer habe ich den Ton-Ausgabetreiber auf pcm gestellt. Video-Ton kommt jetzt über den BT-Sprecher.

Den Springsteen habe ich in wav umgewandelt. Wird mit aplay abgespielt. mp3 funktioniert mit aplay nicht.

Ich fass' nochmal den Stand zusammen:
# bluealsa --disable-hfp &
$ bluetoothctl
# export LIBASOUND_THREAD_SAFE=0
$ Ton-Anwendung

richtig?

Antworten