Hi,
Maybe some one already has some code to read mp3 header info.
I was trying to use some dll but it crashes.
The structure in which i receive the info has some string * 20, etc.
And if i try to make the PB structure with .b[20] when i run it it crashes.
The german comments are not mine, was on the original VB code:
Code: Select all
Structure mpgstruct
ValidHeader .w ; 0=ungültiger Header, 1=gültiger Header
MpegID .w ; 0=reserviert, 1=MPEG 1.0, 2=MPEG 2.0, 3=MPEG 2.5
Layer .w ; 0=unbekannt, 1=Layer 1, 2=Layer 2, 3=Layer 3
CRC .w ; 0=nein, 1=ja
Bitrate .w ; 0=reserviert, >0=Bitrate in kbit/s
Samplerate .l ; Samplerate in Hz
Padding .w ; 0=nein, 1=ja
Private .w ; 0=nein, 1=ja
Stereomode .w ; 0=Stereo, 1=Joint Stereo, 2=Zweikanal, 3=Mono
ExtendedMode .w ; Werte von 0-3
Copyright .w ; 0=nein, 1=ja
Original .w ; 0=nein, 1=ja
Emphasis .w ; 0=keine, 1=50/15ms, 2=unbekannt, 3=CCITT j.17
Duration .l ; Gesamtspielzeit in Sekunden z.B. 210 Sekunden
Minutes .w ; Spielzeit in Minuten z.B. 3 Minuten
Seconds .w ; Spielzeit in Sekunden z.B. 30 Sekunden
HeaderPos .l ; Anfangsposition des Headers
Framelength .l ; Framelänge
FrameCount .l ; Anzahl Frames
FileSize .l ; Filelänge in Bytes
VBR .w ; 0=kein VBR, 1=VBR (variable Bitrate z.B.Xing)
ID3V1Header .w ; 0=kein Header, 1=ID3V1.0 Header, 2=ID3V1.1 Header
ID3V2Header .w ; 0=kein ID3V2 Header, 1=ID3V2 Header vorhanden
ID3V2Pos .l ; Anfangsposition des ID3v2-Headers
Lyrics .w ; 0=kein Lyrics3-Tag, 1=Lyrics3 Vers.1.0 vorhanden, 2=Lyrics3 Vers.2.0 vorhanden
LyricsPos .l ; Anfangsposition des Lyrics3-Tag (zeigt auf "LYRICSBEGIN")
; Nun kommen die ID3v1 Informationen mit Space aufgefüllt!
; eventuell gelesene Null-Byte-Zeichen ( CHR$(0) ) wurden durch Space ersetzt!
Title .b[30] ; Titel
Artist .b[30] ; Interpret
Album .b[30] ; Album
Year .b[4] ; Jahr
Comment .b[30] ; Kommentar
Genre .b[30] ; Musik-Genre als Text ( unterstützt Winamp-Genres)
GenreID .w ; Genre-Index, -1 = kein Genre, 0 - 148
TrackNr .w ; Track-Nr ( nur bei ID3V1.1 )
EndStructure
mpg.mpgstruct
File$ = "c:\windows\escritorio\PoliceCorto.mp3"
If OpenLibrary(0, "MP3reader.dll")
*F = IsFunction(0, "Mp3FileInfo")
If *F
If CallFunctionFast(*F,File$,@mpg)
MessageRequester("Info",Str(mpg/Bitrate),0)
Else
MessageRequester("FAIL","",0)
EndIf
EndIf
CloseLibrary(0)
EndIf
End
The dll could be found at http://www.toengi.de
Best Regards
Ricardo
Dont cry for me Argentina...