Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hohe "Ladezeit" bei vielen MP3 Dateien (FindAllFiles) (https://www.delphipraxis.net/94755-hohe-ladezeit-bei-vielen-mp3-dateien-findallfiles.html)

strange-t 26. Jun 2007 13:47


Hohe "Ladezeit" bei vielen MP3 Dateien (FindAllFil
 
Hi,
ich habe eine Art JukeBox programmiert.
Man kann auswählen welche Ordner man zur Auswahl der MP3's "freigibt".
Ich durchsuche die Ordner dann mit FindAllFiles aus der CodeLib auf Dateien mit der Endung "*.mp3".

Bei einigen GB an Dateien dauert das allerdings ewig. :-/
Wie könnte ich das denn anders machen damit es schneller geht? Vielleicht was anderes als FindAllFiles oder so...

Notfalls hab ich mir auch schon überlegt dieses Durchsuchen einmal nach dem "Freigeben" durchrattern zu lassen und alle gefundenen MP3 Dateien dann in TXT Dateien (z.B.) schreiben zu lassen.

Später würde ich dann nur auf diese TXT Dateien zugreifen.
Aber ich weiss nicht ob das so einfach geht bzw. ob das nicht jedesmal genau so lange dauert...


Bin für jede kleine Idee dankbar! :)

Gruß
Torsten

bigg 26. Jun 2007 14:02

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
Das reine Auflisten von 500-1000 Dateien in einem einzelnen Verzeichnis dauert nicht sehr lange. In unter 1 Sekunde sollte das erledigt sein. Durchsucht du allerdings sehr viele Verzeichnisse dauert das Suchen unter Umständen sehr lange, je nach Verzeichnistiefe und Anzahl enthaltender Dateien etc.

Liest du dann zusätzlich noch deren ID3-Tags aus, dauert es in jedem Fall sehr lange. Ich vermute mal, das du das sogar tust. Hier dürfte dann auch das Hauptproblem zu finden sein.

Aber bevor ich hier noch alle restlichen Fälle aufmale, poste doch mal eine kleine Demo deines Programms.

laserflor 26. Jun 2007 14:05

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
Hallo Torsten,

Dein Vorhaben in allen Ehren .. aber Jukebox-Programme gibts doch wie Sand am Meer :???:

Guck Dir mal MediaMonkey an. Das ist das, was mir bisher am besten gefallen hat :angel2:

Gruß Rolf

strange-t 26. Jun 2007 14:33

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
ui, das geht ja schnell hier ;)

@bigg:
hast recht, ich lese die ID3 Tags aus. Voll vergessen zu erwähnen. :oops:
Ich werde das mal weglassen und schauen ob es schneller geht. Dann weiss ich ja wo ich dran arbeiten muss!
DANKE!!! :)


@laserflor:
Ja, hast recht. Da gibt es wirklich tausende. Habe auch schon viele getestet und nicht eine hat mir wirklich zugesagt.
MediaMonkey war natürlich auch dabei. Das war zwar für mich die zweitbeste aber immernoch nicht das was ich wollte *ggg*.
Deshalb schreib ich mir halt ne eigene. :mrgreen:
Funzt ja auch schon einigermaßen. Hauptproblem ist eben das mit der Ladezeit.
Trotzdem danke für deinen Hinweis.


LG
Torsten

Ghostwalker 26. Jun 2007 14:52

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
Einfach so als Anregung:

Speicher doch die Daten in einer DB. Das dauert dann zwar einmal sehr lange, aber dafür läufts danach schnell und du kanns sogar sehr schnell nach Titel, Intepret usw. suchen. :)

Nachteil:

Wenn neue MP3's dazu kommen mußt du natürlich die DB aktuallisieren.

laserflor 26. Jun 2007 15:55

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
@Ghostwalker:
Datenbank ist ein guter Ansatz :)
Ich habe mich auch jahrelang mit dem Thema MP3-Katalog beschäftigt und bin dabei darauf gekommen, dass die BDE bei über 4.000 Datensätzen (die hatten so ca. 500 Byte pro Datensatz und über 100 Byte pro Index) fast in eine Art Schlafmodus fällt .. also extrem langsam wird.

@strange-t:
Das einzige, was mir einfallen würde, was ich zusätzlich bräuchte:
Eine Analyse der Titel, damit ich sie nach Sprachen einordnen kann.. Immerhin kann IMHO in MySQL sogar Soundex als Index benutzen.. :?: Ich überlege, ob ich da noch was investiere :twisted:
Als Tipp: Nimm gleich Interbase oder FireBird .. oder halt MySQL.
Ein gutes Tutorial zum Thema findest Du hier Interbase
(Ich hoffe, dass "Fremdwerbung" nicht unerwünscht ist, sonst müsste mir der Moderator eine PN schicken.)

Gruß Rolf

bigg 26. Jun 2007 16:19

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
Liste der Anhänge anzeigen (Anzahl: 1)
Häh, Datenbank? :shock:
Ist das nicht etwas überdimensoniert?

Eine TList in Verbindung mit Mergesort ist alles was man für die Verwaltung der Daten benötigt. Anschließend könnte man sich Reports für Excel oder HTML-Tabellen erstellen lassen.

Ist man dazu auch noch zu faul nimmt man wie ich das VT und lässt die Liste dort anzeigen. Und um die Performance der Anwendugn zu optimieren, liest man nicht alle Dateien in einem Rutsch aus, sondern nur die die auch im VT oder in einer Listview momentan angezeigt werden.

strange-t 26. Jun 2007 17:38

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
so, wenn ich das ID3 Tag auslesen weg lasse, geht das wirklich richtig schnell...

an eine datenbank hab ich auch schon gedacht. allerdings kenne ich mich da noch gar nicht aus.
aber was nicht ist, kann ja noch werden. :zwinker:

@bigg:
nur auslesen was auch in der listview angezeigt wird geht leider nicht so ganz,
da in der listview nunmal der komplette ordnerinhalt angezeigt werden muss *ggg*.
was du mit TList und Mergesort meinst, weiß ich grad net... :gruebel: sorry

ich habe das jetzt allerdings erstmal weg gelassen und in der listview wird wirklich nur das angezeigt was auch durch eine manuelle sucheingabe gefunden wurde. das geht dann recht flott, auch mit ID3 Tags.
muss mich dann mal mit DB befassen oder eine andere lösung finden.
weiss nicht zufällig jemand wie das z.B. in mediamonkey gespeichert wird?
da muss man ja auch einmal alles einlesen und danach gehts auch recht schnell wenn ich mich richtig erinnere.

@laserflor:
danke für die tips und den link! kann ich gut gebrauchen wenn ich mich für ne DB entscheide :zwinker:


so, dann werd ich mal sehen wie's weitergeht lol

danke schonmal für die antworten.
falls es noch weitere ideen, tips oder hilfe gibt, nur zu... :mrgreen:

lg
torsten

bigg 26. Jun 2007 18:08

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
Haste schonmal gesehen wie das der Windows-Explorer macht unter XP? :???:
Dieser liest nur die Infos, die der Benutzer auch tatsächlich sieht ein und speichert sie zwischen.

Du kannst ja deine Einträge mit dem Dateinamen eintragen und beim runterscrollen
liest du dann die einzelnen Dateien ein. Ein Flag kennzeichnet dann, ob die Datei schonmal
eingelesen wurde. Macht Winamp und Co. ebenso.

strange-t 26. Jun 2007 18:18

Re: Hohe "Ladezeit" bei vielen MP3 Dateien (FindAl
 
hey, stimmt!!!
daran hab ich noch gar net gedacht. das is die idee schlechthin lol
danke!!! :)

öööhhhh, aber wie funzt das??? lol

hast du da n beispiel-programm oder so?
ich arbeite mit ner listview im vsReport-Style.
in der caption hab ich den Pfad und in den anderen teilen eben Interpret, Titel usw.

THX!!!!

lg


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz