Entwickler-Ecke

Multimedia / Grafik - ID3-Tags auslesen Delphi XE Problem


gnomecoder - Mi 08.12.10 23:11
Titel: ID3-Tags auslesen Delphi XE Problem
Hi,
ich lese nach diesem Tutorial http://www.delphi-treff.de/tipps/multimedia/sonstiges/id3-tags-aus-mp3-ermitteln/ die ID3-Tags von Mp3 dateien aus, unter Delphi 7 funktionierts super, aber wenn ich das Projekt unter Delphi XE kompilieren möchte bekomme ich

Quelltext
1:
2:
3:
4:
5:
6:
reset(f,1);
  Seek(F,FileSize(F)-128);
  BlockRead(F, Buffer, SizeOf(Buffer));   // in dieser Zeile
  CloseFile(F);
  bitrateindex:=((mp3hdr shr 12) and $F);
  versionindex:=((mp3hdr shr 19) and $3);
den Fehler 'Versuch hinter dem Dateiende zu lesen.
Also das kompilieren klappt zwar, doch beim ausführen kommt der Fehler.
Hat jemand ne idee?


bummi - Mi 08.12.10 23:31

Als was ist denn Buffer deklariert, wenn das Problem erst unter einer Unicodefähigen Version Auftritt vermute ich String, wenn dem so ist versuch es mal mit AnsiString.


Narses - Mi 08.12.10 23:31

Moin!

Ich rate mal, dass das ein Unicode-Problem ist: deklarier mal den Buffer als array of AnsiChar, vielleicht reicht´s ja schon. Ansonsten ist das Tut einfach nicht Unicode-fähig. :nixweiss:

Sind user profile iconGausi´s MP3-Utils (hier im Forum zu haben [http://www.delphi-forum.de/topic_MP3FileUtils_51410.html]) nicht unicode-fähig? Warum nimmst du nicht gleich die? ;)

cu
Narses


gnomecoder - Mi 08.12.10 23:40

DANKE!!!
Muss morgen schon fertig sein das Projekt, hätte nicht gedacht so schnell noch Hilfe zu bekommen.
funktioniert super!


Gausi - Do 09.12.10 07:48

Das mit dem Array of AnsiChar sollte reichen. Allerdings dürfte der Code aus dem Delphi-Treff bei sehr vielen mp3-Dateien eine falsche Dauer, Bitrate und Samplerate ermitteln, egal ob bei D7 oder XE. Der mp3hdr, aus dem diese Daten gewonnen werden, muss nämlich nicht am Anfang der Datei stehen - da steht bei den meisten mp3-Dateien erstmal der ID3v2-Tag. ;-)


gnomecoder - Do 09.12.10 13:44

jap.. habe ich jetzt auch gemerkt. So ists leider nicht mehr zu gebrauchen. Ich werde mir wohl doch deine Mp3-utils anschauen. Damit sollte es funktnionieren?


Gausi - Do 09.12.10 14:00

Ja, damit sollte das klappen, und die Unit ist auch XE-kompatibel. Zumindest unter D2009 habe ich die auch in Benutzung, und zu XE hat sich bzgl. Unicode da afaik nichts mehr getan.