Hallo 
DANKE
werde ich @ home gleich versuchen.
ich will mir einfach ein proggy schreiben, mit dem ich alle
mp3’s durchsuchen kann nach mehreren kriterien (auch tag’s).
damit ich auch die klangqualität testen kann, brauch ich den
player auch dazu.
Hmm, das ist Quatsch
Warum willst du mit Kanonen auf Spatzen schiessen? Stell Dir mal vor, du hast 1000 Mp3’s. Willst du dir da etwa anhoeren um zu wissen wie die Qualitaet ist?
und die laufzeit des files hätt ich gerne dabei, damit’s ein
bisserl proffessioneller wird 
Wie du an die kommst, das weisst du ja nun. Aber bei deinem Vorhaben ist dies auch der falsche Weg :s
Schau. Ein Mp3 hat den ID3V1 und den ID3V2 Tag! Der Id3V2 Tag, ist nur ab und wann einmal vorhanden. Wenn er vorhanden ist, dann steht er in den letzten 128 Bytes. Wobei am Anfang, folgende ZeichenKombination vorhanden sein muss „TAG“.
Aber diese Daten haben ein Manko. Sie koennen max. 30 Zeichen lang sein und dort gibt es auch 2 verschiedene Versionen, die man aber auch abfragen kann. Auf diese Daten würde ich mich jedoch nicht verlassen.
Besser dagegen ist schon der ID3V1 Tag. Dieser steht im Header von jeden Mp3 File und kann unterschiedliche Längen haben. Auch ist die Startposition des Tages immer unterschiedlich. Aber auch all diese Daten bekommt man raus 
In diesem Tag findest du unteranderen auch die Spielzeit des Mp3’s. Wenn ich dir nun hier alle Verfuegbaren Daten aufschreiben würde. Ich glaube dann würde ich das Forum sprengen :S Aber so Pi ma Daumen geschaetzt sind es ca. 100 Informationen. Tendenz steigend!
Dort findest du zum Bsp. Bilder, den Autor, Titel, Laufzeit, Ob es ein Copyright besitzt, Samplerate, Bitrate etc.
Wie du nun siehst, kannst du anhand all dieser Informationen das Mp3 bewerten.
Warum also so schwer machen, wenn man es einfacher haben kann 
hast du einen link für mich für diese codebibliothek ?
danke dir
Ich bin nicht an meinen eigenen Rechner, sonst koennte ich dir mal ein Link senden, wo du den Aufbau von Dateien findest.
Auch würde ich von komplexen Source abraten, denn was nuetzt es dir wenn es einmal geht und dann nicht mehr, weil irgendwas in deinem Prog Quer schlaegt. DU weisst dann nicht wo der hund begraben ist:/
Aber um deine Fragen zu beantworten. Probiere mal folgenden Code
Option explicit
Private Type MP3Information
ID As String 'ID
Layer As String 'Layer
Bitrate As Long 'Bitrate
SampleRate As Long 'Hz
Frames As Long 'Frame-Anzahl
Duration As Long 'Länge (in Sekunden)
End Type
Private Function GetMP3Information(ByVal MP3File As String) As MP3Information
Dim dIN As String
Dim bitrate\_lookup(7, 15) As Integer
Dim bitrate\_data As String
Dim actual\_bitrate As Long
Dim X As Integer, Y As Integer
Dim mp3\_id As Double, mp3\_layer As Double, mp3\_prot As Double
Dim mp3\_bitrate As Double, mp3\_freq As Double, mp3\_pad As Double
Dim framesize As Double, total\_frames As Double, track\_length As Double
bitrate\_data = bitrate\_data & "032,032,032,032,008,008,"
bitrate\_data = bitrate\_data & "064,048,040,048,016,016,"
bitrate\_data = bitrate\_data & "096,056,048,056,024,024,"
bitrate\_data = bitrate\_data & "128,064,056,064,032,032,"
bitrate\_data = bitrate\_data & "160,080,064,080,040,040,"
bitrate\_data = bitrate\_data & "192,096,080,096,048,048,"
bitrate\_data = bitrate\_data & "224,112,096,112,056,056,"
bitrate\_data = bitrate\_data & "256,128,112,128,064,064,"
bitrate\_data = bitrate\_data & "288,160,128,144,080,080,"
bitrate\_data = bitrate\_data & "320,192,160,160,096,096,"
bitrate\_data = bitrate\_data & "352,224,192,176,112,112,"
bitrate\_data = bitrate\_data & "384,256,224,192,128,128,"
bitrate\_data = bitrate\_data & "416,320,256,224,144,144,"
bitrate\_data = bitrate\_data & "448,384,320,256,160,160,"
For Y = 1 To 14
For X = 7 To 5 Step -1
bitrate\_lookup(X, Y) = Left(bitrate\_data, 3)
bitrate\_data = Right(bitrate\_data, Len(bitrate\_data) - 4)
Next
For X = 3 To 1 Step -1
bitrate\_lookup(X, Y) = Left(bitrate\_data, 3)
bitrate\_data = Right(bitrate\_data, Len(bitrate\_data) - 4)
Next
Next
Open MP3File For Binary As #1
dIN = Input(4096, #1)
filesize = LOF(1)
Close #1
Do Until i = 4095
i = i + 1
d1 = Asc(Mid(dIN, i, 1))
d2 = Asc(Mid(dIN, i + 1, 1))
If d1 = &HFF And (d2 And &HF0) = &HF0 Then
temp\_string = Mid(dIN, i + 1, 3)
mp3bits\_string = ShiftBits(Mid(dIN, i + 1, 3))
Exit Do
End If
dSHIFT = ShiftBits(Mid(dIN, i, 3))
dd1 = Asc(Left(dSHIFT, 1))
dd2 = Asc(Right(dSHIFT, 1))
If dd1 = &HFF And (dd2 And &HF0) = &HF0 Then
mp3bits\_string = Mid(dIN, i + 2, 3)
Exit Do
End If
Loop
mp3\_id = (&H80 And Asc(Left(mp3bits\_string, 1))) / 128
mp3\_layer = (&H60 And Asc(Left(mp3bits\_string, 1))) / 32
mp3\_prot = &H10 And Asc(Left(mp3bits\_string, 1))
mp3\_bitrate = &HF And Asc(Left(mp3bits\_string, 1))
mp3\_freq = &HC0 And Asc(Mid(mp3bits\_string, 2, 1))
mp3\_pad = (&H20 And Asc(Mid(mp3bits\_string, 2, 1))) / 2
actual\_bitrate = 1000 \* CLng((bitrate\_lookup((mp3\_id \* 4) Or mp3\_layer, mp3\_bitrate)))
If mp3\_id = 0 Then
GetMP3Information.ID = "MPEG-2"
Else
GetMP3Information.ID = "MPEG-1"
End If
Select Case mp3\_layer
Case 1
GetMP3Information.Layer = "Layer III"
Case 2
GetMP3Information.Layer = "Layer II"
Case 3
GetMP3Information.Layer = "Layer I"
End Select
GetMP3Information.Bitrate = actual\_bitrate
Select Case (mp3\_id \* 4) Or mp3\_freq
Case 0
sample\_rate = 22050
Case 1
sample\_rate = 24000
Case 2
sample\_rate = 16000
Case 4
sample\_rate = 44100
Case 5
sample\_rate = 48000
Case 6
sample\_rate = 32000
End Select
GetMP3Information.SampleRate = sample\_rate
framesize = ((144 \* actual\_bitrate) / sample\_rate) + mp3\_pad
total\_frames = filesize / framesize
track\_length = total\_frames / 38.5 '38.5 Frames pro Sekunde
GetMP3Information.Frames = Int(total\_frames)
GetMP3Information.Duration = Int(track\_length)
End Function
Private Function ShiftBits(dIN As String) As String
Dim sd1 As Integer, sd2 As Integer, sd3 As Integer
Dim do1 As Integer, do2 As Integer
sd1 = Asc(Left(dIN, 1))
sd2 = Asc(Mid(dIN, 2, 1))
sd3 = Asc(Right(dIN, 1))
do1 = ((sd1 And &HF) \* 16) Or ((sd2 And &HF0) / 16)
do2 = ((sd2 And &HF) \* 16) Or ((sd3 And &HF0) / 16)
ShiftBits = Chr(do1) + Chr(do2)
End Function
'Ein Aufruf koennte wiefolgt ausschauen
Dim MP3Info As MP3Information
MP3Info = GetMP3Information("C:\Dein.mp3")
ciao
MfG Alex