Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi ID3 Viel zu langsam beim lesen (https://www.delphipraxis.net/97091-id3-viel-zu-langsam-beim-lesen.html)

napsterxx 4. Aug 2007 13:44


ID3 Viel zu langsam beim lesen
 
Informationen aus MP3 Dateien zu lesen geht ja ganz gut, solang das nicht viele sind. Sind das aber mal 1000-2000 dann dauert das... und zwar echt lange. Deshalb wollte ich meinen Media Player umstrukturieren, dass er die Infos aus mp3 Dateien schneller liest. Aber wie? DSA dauert immernoch verdammt lange. Benutze die Jedis... Kann jemand helfen ;)?

Gausi 4. Aug 2007 13:53

Re: ID3 Viel zu langsam beim lesen
 
Wie lange dauert das denn bei dir? Mit meinen mp3FileUtils schaffe ich ca. 25-50 Dateien pro Sekunde (je nach Datenträger, auf dem die mp3s liegen). Ausgelesen wird dabei Id3v1 und v2-Tag sowie diverse Infos wie Bitrate, Dauer etc.

OregonGhost 4. Aug 2007 14:40

Re: ID3 Viel zu langsam beim lesen
 
Also, wenn ich dem Media Center oder Media Player meine komplette Bibliothek zum Einlesen gebe, ist der auch schon ein paar Minuten beschäftigt. Find ich jetzt nicht direkt ungewöhnlich. Was ist denn für dich "verdammt lange"?

gsh 4. Aug 2007 14:41

Re: ID3 Viel zu langsam beim lesen
 
du könntest es vllt. optimieren wenn du es auf mehreren Threads aufteilst oder du optimierst den code der es ausließt

Bernhard Geyer 4. Aug 2007 14:55

Re: ID3 Viel zu langsam beim lesen
 
Schon mal kontrolliert wo genau die Zeit verbraten wird (z.B. mit AQTime). Es könnte ja neben dem Festplattenzugriff die Laderoutine einfach nicht optimal Programmiert worden sein (z.B. zu häufige GUI-Aktualisierungen)

napsterxx 6. Aug 2007 12:48

Re: ID3 Viel zu langsam beim lesen
 
Also ich sag mal die ersten 1000 songs gehn sehr schnell, ich habe eine Progressbar eingebaut, aber dann dauert das... vll insgesammt 2min. Beim Media Player 11 geht dsa in 2sekunden... mp3FileUtils hab ich auch probiert. Macht kein unterschied im gegensatz zu den jedis.

Gausi 6. Aug 2007 12:53

Re: ID3 Viel zu langsam beim lesen
 
Ich glaube nicht, dass der WMP 1000 Dateien (also ca. 3GB) in 2 Sekunden analysieren kann. Der wird dann intern auf irgendwelche Datenbanken zurückgreifen, die im Hintergrund von irgendwelchen Diensten erstellt werden.

Bernhard Geyer 6. Aug 2007 12:54

Re: ID3 Viel zu langsam beim lesen
 
Du meinst jede mehr Dateien aufgenommen werden desto längert dauert jede neue Datei.
Wohin werden denn die Daten geschrieben? Werden Sie visualisiert? Zeig mal etwas Code.

Dunkel 6. Aug 2007 14:07

Re: ID3 Viel zu langsam beim lesen
 
Zitat:

Zitat von napsterxx
{ ... } ich habe eine Progressbar eingebaut, aber dann dauert das... vll insgesammt 2min.

Wie oft aktualisierst Du denn die Progressbar? Nach jeder gelesenen Datei? Das frisst ungemein viel Zeit (wenn man es aufaddiert). Lass der Progressbar lieber nach jeder 10ten, 50ten, 100ten Datei (musst Du halt ausprobieren was Dir am besten passt / am besten aussieht) aktuelle Daten zukommen, z.T. bringt das schon einiges.

OregonGhost 6. Aug 2007 15:11

Re: ID3 Viel zu langsam beim lesen
 
Die von dir angegebene Zeit vom WMP ist auf einen der folgenden Punkte zurückzuführen:
1. Du wolltest Dateien zur Bibliothek hinzufügen, die bereits vorhanden sind. Der WMP übergeht diese.
2. Du hast lediglich Dateien in der Medienbibliothek oder einer Playlist angezeigt. Diese Metadaten speichert der WMP in einer internen Datenbank für schnellen Zugriff.

Dunkels Tipp solltest du befolgen, falls du bisher bei allen Tests die Progressbar ständig aktualisiert hast. Ansonsten bleibt zu sagen, dass zwei Minuten für 1000 Dateien absolut keine lange Zeit sind. Wann musst du die Daten denn einlesen? Ein Benutzer hat Verständnis dafür, dass das Einlesen von tausenden von Dateien eine Zeitlang dauert, wenn er es nicht ständig machen muss. Geht es dir um das Einlesen z.B. aller Dateien in einem Verzeichnis, um sie anzuzeigen? Dann ist vielleicht ein Konzept wie beim WMP ganz günstig, oder du verlagerst das Einlesen in einen zweiten Thread, damit der Benutzer während des Einlesens schon mit dem Programm arbeiten kann (und schonmal die Daten angezeigt bekommt, die verfügbar sind).


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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