uC-Mp3-Player Ablaufsteuerung

OP #1516481
Ih hab mir hier nen Player gebaut: Lesen von SD-karte in den Mega32 rein 
und der Stream dann an nen VS1001.
Nun geht es an die Funktionen wie Pause, Titel vor, Titel zurück und 
Shuffle.

Frage: Die Dateinamen sind dem Player ja nicht bekannt. Wie bekomm ich 
es also hin, dass der Player startet, sich die 1. Mp3-Datei schnappt und 
diese abspielt? Meine Idee wäre, Bei Adresse 0 zu beginnen, den 
Filepointer zu inkrementieren und dann immer ein Stück von 4 Byte mit 
".mp3" zu vergleichen um die Dateien zu finden.
Ich nutze das TinyFatFs von Chan und kenne mich mit der Datenverteilung 
auf nem Datenträger nicht wirklich aus.
Das Problem bei dieser Methode wäre ja dann auch: wenn ich also das Ende 
des Dateinamens ausfindig gemacht habe, wie ermittle ich dann den Rest 
des Dateinamens, um diese Datei dann öffnen zu können? Der kann ja 
unterschiedlich lang sein.

Zum Shuffle: Könnte ich da mittels eines Zufallswertes irgendwo in den 
Adressbereich des Datenträgers springen, wo Mp3-Daten vorhanden sind und 
dann entweder vor- oder rückwärtsgehen, bis ich wieder auf den 
Dateianfang einer Mp3 stoße und diese dann abspielen?

Klar hab ich hier einige Beispielprojekte rumliegen, aber in deren 
Quelltexten bin ich nicht so richtig fündig geworden. Teilweise sind die 
ziemlich kompliziert zu verstehen für mich als relativen Beginner.

Danke für Eure Hilfe.
Persönliche Seite #1516488
> Die Dateinamen sind dem Player ja nicht bekannt.

Natürlich sind sie das, der Player liest das Inhaltsverzeichnis 
("Directory") der SD-Karte.

Dazu ist das von Dir erwähnte Dateisystem FAT und der Treiber TinyFatFS 
zuständig.

Wie das Inhaltsverzeichnis strukturiert ist, ist in der 
FAT-Dokumentation beschrieben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.