Neues Feature: Bluetooth (a2dp-sink)

In der Funktion
void doCmdAction(const uint16_t mod)

case CMD_PLAYPAUSE: {
	if (operationMode == TOperationMode::Bluetooth) {
		if (a2dp_sink->get_audio_state() == ESP_A2D_AUDIO_STATE_STARTED)
		{
			a2dp_sink->pause();
		}
		else
		{
			a2dp_sink->play();
		}
	}
	else
	{
		trackControlToQueueSender(TTrackControl::PausePlay);
	}
	break;
}
case CMD_PREVTRACK: {
	if (operationMode == TOperationMode::Bluetooth) {
		a2dp_sink->previous();
	}
	else
	{
		trackControlToQueueSender(TTrackControl::PreviousTrack);
	}
	break;
}
case CMD_NEXTTRACK: {
	if (operationMode == TOperationMode::Bluetooth) {
		a2dp_sink->next();
	}
	else
	{
		trackControlToQueueSender(TTrackControl::NextTrack);
	}
	break;
}
1 „Gefällt mir“

Wenn ich mein Smartphone mit dem ESPuino koppeln will bekomme ich immer die Aufforderung einen Code einzugeben.


Wie gebe ich den denn beim ESPuino ein?

Kommt man da nicht irgendwie dran vorbei?
Also aktuell ist es nicht vorgesehen, irgendwo/irgendwie was einzugeben.

Ich hab keinen Weg dran vorbei gefunden. Ich habe 3 verschiedene Androidgeräte unterschiedlicher Hersteller versucht. Wenn ich mich mit anderen Bluetoothboxen koppeln will, muss ich da auch keinen Code eingeben. Nur der ESPuino will einen haben.

Dann muss ich wohl mal in der BT-Lib schauen, ob man das dort irgendwie steuern kann.

1 „Gefällt mir“

Vielleicht hilft das?

2 „Gefällt mir“

@tueddy Vielen Dank für den Link.
@moin: Kannst du mal schauen, ob es was bringt, die Zeile 24 zu entfernen?

1 „Gefällt mir“

Das scheint nicht zu helfen. Ich soll immer noch den Kopplungscode eingeben.

Vielleicht kann man auch

a2dp_sink->activate_pin_code(false);

explizit setzen.

1 „Gefällt mir“

'class BluetoothA2DPSink' has no member named 'activate_pin_code'

Ich glaub du hast die Library auf eine Version gepinnt, bevor das hinzugefügt wurde.


Mit dieser Version GitHub - pschatzmann/ESP32-A2DP: A Simple ESP32 Bluetooth A2DP Library (to implement a Music Receiver or Sender) that supports Arduino, PlatformIO and Espressif IDF
und
a2dp_sink->activate_pin_code(false);
in Zeile 24 funktioniert das koppeln ohne Code.

Vielen Dank @tueddy und @biologist

Fein, danke für dein Feedback! :+1:
Ja ich hatte diese Version kürzlich gepinnt, weil es im Rahmen eines größeren Updates dieser Lib zu einem Problem beim Kompilieren kam. Das kann ich wieder rausnehmen. Und dann bringe ich auch gleich die neue Zeile rein. Die alte Zeile 24 hast du jetzt zusätzlich entfernt?

Ja ich habe Zeile 24 einfach ersetzt. Das Koppeln funktioniert aber auch, wenn sie drin bleibt.

Mit der neusten Version der Library kann ich zwar auch koppeln, aber ich bekomme keine Verbindung. Der ESPuino wird sofort wieder getrennt.

Und welche Version hast dann genommen? Eine davor?

Ich hab vorhin einfach ganz vorsichtig die gewählt, mit der a2dp_sink->activate_pin_code(false); möglich war (#c119449). Ich hab nicht alle Versionen dazwischen probiert.

Ich kann ja auch nur schauen, ob koppeln und verbinden klappt. Hören kann ich das was abgespielt wird ja leider noch nicht.

Ok, dann schaue ich mir das heute Abend mal an.
Dafür die die Infos.

Also aus meiner Sicht klappt das mit der aktuellen Header-Version.
Habe eben einen Fix hochgeladen und bin nun auch dem (mehrfachen) Wunsch nachgekommen, dass Libs im Sinne der Reproduzierbarkeit auf eine Version X gepinnt werden. Habe jetzt jeweils die aktuellen Header-Versionen gepinnt und dann muss das halt in Zukunft ab und an von mir aktualisiert werden.

Sollte jmd. damit Probleme haben: Einfach erstmal in Platformio auf „clean“ klicken und dann erneut „Upload and Monitor“.

Das Bluetooth-Feature nutzen wir hier oft & gern, z.B. wenn wir ein Lied spielen möchten das noch nicht auf einer Karte hinterlegt ist… Dann wird das mal eben über das Handy gestreamt…
Das funktinioniert auch recht gut, Vielen Dank nochmal an die Autoren!

Die gepinnte Library stammt aus Sep. 2021, das ist schon ein wenig Steinzeit bei der schnellen Entwicklung. In der Bibliothek wurden z.B. Pairing-und Kompatibiltäts-Probleme mit Arduino 2.0 behoben.

Habe den Code jetzt mal aktualisiert, er bringt nicht wesentliche Neurerungen, außer Anzeige der Metadaten wie Titel/Album in der Konsole. Wird den Umstieg auf eine neuere Arduino Version einfacher machen…

1 „Gefällt mir“

Funktioniert super. Danke!
Hab’s schon in den Master integriert.

1 „Gefällt mir“