INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Web Radio mit Buffer
10.11.2020, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2020 09:26 von devnull69.)
Beitrag #1
Web Radio mit Buffer
Ich nutze den Code von https://github.com/educ8s/ESP32-Web-Radio-Simple (modifiziert für den ESP8266).

Er ist "erschreckend" einfach ... und funktioniert. So weit, so gut.

Er hat lediglich ein paar Probleme mit Verbindungsschwankungen, dann fängt die Übertragung an zu springen bzw. kurz zu pausieren.

Im Verdacht habe ich dabei, dass bei jedem loop() nur 32 Bytes gelesen und abgespielt werden. Daher wollte ich einen einfachen Buffer einbauen, der erst einmal gefüllt wird, dann spielt der Player einen Abschnitt des Buffers, während dieser parallel weiter gefüllt bzw. modifiziert wird.

Mir ist dabei aufgefallen, dass folgendes nicht äquivalent zu sein scheint:

Code:
// Originalcode ... funktioniert
void loop() {
      ...
      if (client.available() > 0)
      {
        uint8_t bytesread = client.read(mp3buff, 32);
        player.playChunk(mp3buff, bytesread);   // bytesread ist immer 32
      }
      ...
}

Code:
// Das funktioniert leider nicht
bool written = false;
void loop() {
      ...
      if (client.available() > 0 && !written)
      {
        uint8_t bytesread = client.read(mp3buff, 32);
        written = true;
      }
      if(written) {
        player.playChunk(mp3buff, 32);
        written = false;
      }
      ...
}

Ich weiß, das sieht erst einmal sinnfrei aus, ich wollte eigentlich nur das Einlesen in den Buffer vom eigentlichen Abspielen trennen, damit ich "in Ruhe" den Buffer befüllen kann.

Leider gibt aber der zweite Code bei player.playChunk(...) immer eine Exception (9) aus. Irgendwas stimmt hier nicht ... habt ihr eine Idee?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 12:33
Beitrag #2
RE: Web Radio mit Buffer
Hast du denn den originalen Sketch auf einem ESP32 getestet.
Evtl. ist ja deine Modifikation fehlerhaft.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 15:08
Beitrag #3
RE: Web Radio mit Buffer
Das könnte ich machen. Ich kriege tatsächlich morgen einen neuen ESP32 geliefert, den ich dazu verwenden werde. Ich melde mich dann wieder.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 16:03
Beitrag #4
RE: Web Radio mit Buffer
Vielleicht schaust du dir mal https://github.com/earlephilhower/ESP8266Audio an. Das ist modular aufgebaut und da kannst du bei Bedarf einfach einen Puffer selbst definieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.11.2020, 10:08
Beitrag #5
RE: Web Radio mit Buffer
Danke für Eure Antworten

Ich habe den passenden RingBuffer für das Projekt gefunden: https://github.com/baldram/ESP_VS1053_Li...8c2d7d8fca

Damit hat alles prima funktioniert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.11.2020, 12:47
Beitrag #6
RE: Web Radio mit Buffer
(11.11.2020 10:08)devnull69 schrieb:  Danke für Eure Antworten

Ich habe den passenden RingBuffer für das Projekt gefunden: https://github.com/baldram/ESP_VS1053_Li...8c2d7d8fca

Damit hat alles prima funktioniert

Das sieht doch gut aus. Ich sehe mich da auch schon dran bauen.
Hab auch alles hier liegen. Wink

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.11.2020, 21:19 (Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2020 21:20 von Beinhardt.)
Beitrag #7
RE: Web Radio mit Buffer
Hallo,

ich habe diese Lib benutzt: https://github.com/schreibfaul1/ESP32-vs1053_ext
Die kann auch
*Meta-Daten (Sender Text o.ä.) extrahieren
*Playlistverarbeitung (zB. http://play.rockantenne.de/rockantenne.m3u)
*https (nicht probiert)

Mein Webradio ist die letzten Tage "fertig" geworden - siehe Anhang...
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.11.2020, 07:14
Beitrag #8
RE: Web Radio mit Buffer
Danke Beinhardt,

drei Dinge, die ich cool finde: Dass Du geantwortet hast, Dein Webradio, und dass als Sender Rock Antenne Heavy Metal eingestellt ist. Das ist bei meinem Webradio der Default-Sender :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste