Dateieigenschaften (mp3-dauer, interpret..)
-
wie bekomme ich die infos z.b. über ein mp3, wie dauer oder interpret?
GetFileAttributes und ähnliches geht nicht, da bekomme ich nur gerade "FILE_ATTRIBUTE_NORMAL" oder ähnliche werte..
dankschön, gruss nate
-
du musst den ID3-Tag auslesen
forensuche --> id3
bsp:
http://www.c-plusplus.net/forum/viewtopic.php?t=25105
-
(dochdoch, ich hab schon gesucht, aber wenn man id3 nicht kennt, ists schwierig..)
vielen dank
-
nate7 schrieb:
(dochdoch, ich hab schon gesucht, aber wenn man id3 nicht kennt, ists schwierig..)
vielen dank
der steht doch in der mp3
-
2.frage: wie bekomm ich die dauer?
// ID3 (v1) Song title 30 characters Artist 30 characters Album 30 characters Year 4 characters Comment 30 characters Genre 1 byte
-
http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm
"First, let's distinguish two terms frame size and frame length. Frame size is the number of samples contained in a frame. It is constant and always 384 samples for Layer I and 1152 samples for Layer II and Layer III."
Bei einer Layer3 mp3 mit 8654 Frames und 44,1 kHz weiss ich also:
Ein Frame beinhaltet 1152 samples, es gibt 44100 Samples pro Sekunde
8654 Frames * 1152 Samples / 44100 Samples wären etwa 226 Sekunden
also etwa 3min, 46 Sekunden.Die Schwierigkeit liegt darin dass einzelne Frames unterschiedlich lang sein können (mit jeweils gleicher Anzahl von Samples drin)...
...zudem können die Frames unterschiedliche Bitraten haben und man kann nicht unbedingt anhand der Dateigröße und des ersten Frames direkt auf die Songlänge schließen. Zusätzlich muss man noch aufpassen da ja eben die id3-tags am anfang oder am ende der mp3 liegen können...
-
hat jemand gerade eine solche (schon fast standard-)funktion zur hand?
ich muss gestehen, ich hab keine lust, das mp3 auszulesen.. haben bestimmt schon viele vor mir gemacht..
delphi: http://jouwfeestje.com/files/fileinfo/
vb: MediaPlayer1.Duration
c++: ?
dankschön
-
habs doch noch herausgefunden.. (es hätte mir ja auch jemand sagen könne, dass man mit mciStrings auch solche dinge aulesen kann..;)):
mciSendString("status MP3 length", retval, lstrlen(retval), NULL);