vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
id3 Tag setzen. 
Autor: Gabrial
Datum: 05.05.02 22:27

Hallöchen. Ich hab enorme Probleme id3 Tag zu schreiben. dann hathier mal irgendjemand einen Link geschrieben. dort bin ich dann auch drauf und hab mir das Modul gezogen mit das schreiben und auslesen von mp3 Infos kein Problem sein soll.
Jedoch ich hab alles versucht und bekomms nicht gebacken. kann einer von euch vielleicht einfach mal ein test Prog mit diesem modul schreiben? oder mir erklären wie das funktionieren soll. wäre ganz toll.



Public Type utID2Frame
Name As String * 4
Länge As Long
Flags1 As Byte
Flags2 As Byte
Text As String
End Type

Public Type utID2Tag
Vers As Byte
Rev As Byte
Flags As Byte
Länge As Long
Frames() As utID2Frame
End Type


Public Type utID1Tag
Titel As String * 30
Artist As String * 30
Album As String * 30
Jahr As String * 4
Kommentar As String * 30
Genre As Byte
End Type

Public Type utHeader2
Dateigröße As Long
Position As Long
Version As String
Layer As String
Protection As String
Bitrate As String
Samplingfrequenz As String
Padding As String
Privat As String
Mode As String
Copyright As String
Original As String
Emphasis As String
Länge As Long
End Type

Private Type utID2StdFrames
Name As String * 4
Desc As String
XDesc As String
End Type

Private Genre(255) As String
Private Leertag As utID1Tag
Private StdFrames(100) As utID2StdFrames






Public Function GetID2Tag(ByVal File As String, ByRef ID2Tag As utID2Tag) As Long
Dim B As Byte, L1 As Byte, L2 As Byte, L3 As Byte, L4 As Byte
Dim S3 As String * 3, S4 As String * 4, Str1 As String
On Error GoTo EH
GetID2Tag = True
With ID2Tag
ReDim .Frames(0)
Open File For Binary As #1
Get #1, , S3
If S3 = "ID3" Then
Get #1, 4, B: .Vers = B
Get #1, 5, B: .Rev = B
Get #1, 6, B: .Flags = B
Get #1, 7, B: L1 = B
Get #1, 8, B: L2 = B
Get #1, 9, B: L3 = B
Get #1, 10, B: L4 = B
.Länge = L4 + L3 * 128 + L2 * 128 * 128 + L1 * 128 * 128 * 128
i = 1
Do
Get #1, i + 10, S4: i = i + 4
If Left(S4, 1) <> Chr(0) Then
TF = UBound(.Frames) + 1
ReDim Preserve .Frames(TF)
.Frames(TF).Name = S4
Get #1, i + 10, B: L1 = B
Get #1, i + 11, B: L2 = B
Get #1, i + 12, B: L3 = B
Get #1, i + 13, B: L4 = B
.Frames(TF).Länge = L4 + L3 * 128 + L2 * 128 * 128 + L1 * 128 * 128 * 128: i = i + 4
Get #1, i + 10, B: .Frames(TF).Flags1 = B: i = i + 1
Get #1, i + 10, B: .Frames(TF).Flags2 = B: i = i + 1

Str1 = ""
Str1 = String(.Frames(TF).Länge - 1, " ")
Get #1, i + 11, Str1: i = i + .Frames(TF).Länge
p = InStr(Str1, Chr(0))
If p > 0 Then Str1 = Mid(Str1, 1, p - 1)
.Frames(TF).Text = Str1
End If
Loop Until i > .Länge
End If
Close #1
End With
Exit Function


EH:
Select Case Err.Number
Case 70, 71, 75, 76
GetID2Tag = False
Exit Function
Case Else
GetID2Tag = Err.Number
Exit Function
End Select
End Function



Public Function WriteID2Tag(ByVal File As String, ByRef ID2Tag As utID2Tag) As Long
Dim B As Byte, L1 As Byte, L2 As Byte, L3 As Byte, L4 As Byte 'Temporäes Byte, Längenumrechnung
Dim S3 As String * 3, S4 As String * 4, Str111 As String 'Zeicherfolgenlängen
On Error GoTo EH
WriteID2Tag = True
With ID2Tag
Open File For Binary As #1
Get #1, , S3
Startpos = 1
If S3 = "ID3" Then
Get #1, 4, B: .Vers = B
Get #1, 5, B: .Rev = B
Get #1, 6, B: .Flags = B
Get #1, 7, B: L1 = B
Get #1, 8, B: L2 = B
Get #1, 9, B: L3 = B
Get #1, 10, B: L4 = B
Länge1 = L4 + L3 * 128 + L2 * 128 * 128 + L1 * 128 * 128 * 128
Startpos = Länge1 + 11
End If

Seek 1, Startpos
Str111 = String(LOF(1) - Loc(1), " ")
Get #1, , Str111
Close #1
Kill File
Open File For Binary As #2
Put #2, , "ID3"
Put #2, , .Vers
Put #2, , .Rev
Put #2, , .Flags
Länge1 = 0
For i = 1 To UBound(.Frames)
Länge1 = Länge1 + 10 + Len(.Frames(i).Text) + 1
Next
L1 = Länge1 (128# * 128# * 128#)
Länge1 = Länge1 - L1 * 128 * 128 * 128
L2 = Länge1 (128 * 128)
Länge1 = Länge1 - L2 * 128 * 128
L3 = Länge1 (128)
Länge1 = Länge1 - L3 * 128
L4 = Länge1
Put #2, , L1
Put #2, , L2
Put #2, , L3
Put #2, , L4
For i = 1 To UBound(.Frames)
Put #2, , .Frames(i).Name
Länge1 = Len(.Frames(i).Text) + 1
L1 = Länge1 (128# * 128# * 128#)
Länge1 = Länge1 - L1 * 128 * 128 * 128
L2 = Länge1 (128 * 128)
Länge1 = Länge1 - L2 * 128 * 128
L3 = Länge1 (128)
Länge1 = Länge1 - L3 * 128
L4 = Länge1
Put #2, , L1
Put #2, , L2
Put #2, , L3
Put #2, , L4
Put #2, , .Frames(i).Flags1
Put #2, , .Frames(i).Flags2
Put #2, , CByte(0)
For j = 1 To Len(.Frames(i).Text)
Put #2, , CByte(Asc(Mid(.Frames(i).Text, j, 1)))
Next
Next
Put #2, , Str111
Close #2
End With
Exit Function


EH:
Select Case Err.Number
Case 70, 71, 75, 76
WriteID2Tag = False
Exit Function
Case Else
WriteID2Tag = Err.Number
Exit Function
End Select
End Function

Public Function RemoveID2Tag(ByVal File As String)
Dim B As Byte, L1 As Byte, L2 As Byte, L3 As Byte, L4 As Byte 'Temporäes Byte, Längenumrechnung
Dim Str111 As String 'Zeicherfolgenlängen
On Error GoTo EH
RemoveID2Tag = True
Open File For Binary As #1
Get #1, , S3
If S3 = "ID3" Then
Get #1, 4, B ': .Vers = B
Get #1, 5, B ': .Rev = B
Get #1, 6, B ': .Flags = B
Get #1, 7, B: L1 = B
Get #1, 8, B: L2 = B
Get #1, 9, B: L3 = B
Get #1, 10, B: L4 = B
Länge1 = L4 + L3 * 128 + L2 * 128 * 128 + L1 * 128 * 128 * 128

Seek 1, Länge1 + 11
Str111 = String(LOF(1) - Loc(1), " ")
Get #1, , Str111
Close #1
Kill File
Open File For Binary As #2
Put #2, , Str111
Close #2
Else
Close #1
End If
Exit Function


EH:
Select Case Err.Number
Case 70, 71, 75, 76
RemoveID2Tag = False
Exit Function
Case Else
RemoveID2Tag = Err.Number
Exit Function
End Select
End Function

'////////////////////////////////////////////////////
'////////////////////////////////////////////////////



Function GetID1Tag(ByVal Filename As String, ByRef Tag As utID1Tag, Optional ByRef Leer As Boolean) As Long
Leertag.Genre = 255
Dim Tag1 As String * 3
GetID1Tag = 0
On Error GoTo EH
L = FileLen(Filename)
Open Filename For Binary As #1
TPos = L - 127
Tag1 = String(3, " ")
Get #1, TPos, Tag1
If Tag1 <> "TAG" Then
Tag = Leertag
Leer = True
Else
TPos = TPos + 3
Get #1, TPos, Tag
Leer = False
End If
Close #1
Tag.Album = Trim(Tag.Album) & String(30, 0)
Tag.Artist = Trim(Tag.Artist) & String(30, 0)
Tag.Jahr = Trim(Tag.Jahr) & String(4, 0)
Tag.Kommentar = Trim(Tag.Kommentar) & String(30, 0)
Tag.Titel = Trim(Tag.Titel) & String(30, 0)

Exit Function
EH:
GetID1Tag = Err.Number
Close #1
Exit Function
End Function


Function WriteID1Tag(ByVal Filename As String, ByRef Tag As utID1Tag) As Integer
Tag.Album = Trim(Tag.Album) & String(30, 0)
Tag.Artist = Trim(Tag.Artist) & String(30, 0)
Tag.Jahr = Trim(Tag.Jahr) & String(4, 0)
Tag.Kommentar = Trim(Tag.Kommentar) & String(30, 0)
Tag.Titel = Trim(Tag.Titel) & String(30, 0)

Dim Tag1 As String * 3
WriteID1Tag = 0
On Error GoTo EH
L = FileLen(Filename)
Open Filename For Binary As #1
TPos = L - 127
Tag1 = String(3, " ")
Get #1, TPos, Tag1
If Tag1 <> "TAG" Then 'Kein TAG Vorhanden
TPos = TPos + 127
Put #1, TPos, "TAG"
TPos = TPos + 3
Put #1, TPos, Tag

Else 'TAG vorhanden
TPos = TPos + 3
Put #1, TPos, Tag
End If
Close #1
Exit Function
EH:
WriteID1Tag = Err.Number
Close #1
Exit Function
End Function


Function RemoveID1Tag(ByVal Filename As String) As Integer
Dim Str111 As String 'Zeicherfolgenlängen
Dim Tag1 As String * 3
RemoveID1Tag = 0
On Error GoTo EH
L = FileLen(Filename)
Open Filename For Binary As #1
TPos = L - 127
Tag1 = String(3, " ")
Get #1, TPos, Tag1
If Tag1 = "TAG" Then 'TAG vorhanden
Str111 = String(LOF(1) - 127, " ")
Seek #1, 1
Get #1, , Str111
Close #1
Kill File
Open File For Binary As #1
Put #1, , Str111
Close #1
End If
Close #1
Exit Function
EH:
RemoveID1Tag = Err.Number
Close #1
Exit Function
End Function

Public Function GetMPEGHeader(ByVal Filename As String, Header As utHeader2) As Long
Dim Str111 As String, StrH As String * 4, B(4) As Byte 'Zeicherfolgenlängen
'On Error GoTo EH

L = FileLen(Filename)
Open Filename For Binary As #1
' Str111 = String(LOF(1), " ")
Str111 = String(50000, " ")
Get #1, , Str111
Header.Dateigröße = LOF(1)
Close #1

A = InStr(1, Str111, Chr(255))
If A > 0 Then
StrH = Mid(Str111, A, 4)
For i = 1 To 4
B(i) = Asc(Mid(StrH, i, 1))
Next
Header.Position = A
If B(2) And 8 Then Header.Version = "MPEG 1" Else Header.Version = "MPEG 2"
Select Case (B(2) And (2 Or 4)) / 2
Case 0
Header.Layer = "Layer invalid"
Case 1
Header.Layer = "Layer 3"
Case 2
Header.Layer = "Layer 2"
Case 3
Header.Layer = "Layer 1"
End Select
If B(2) And 1 Then Header.Protection = "Ja" Else Header.Protection = "Nein"
Header.Bitrate = "???"
If (B(2) And (2 Or 4)) / 2 = 1 And (B(2) And 8) / 8 = 1 Then '1.3
Select Case (B(3) And (16 Or 32 Or 64 Or 128)) / 16
Case 1: Header.Bitrate = "32"
Case 2: Header.Bitrate = "40"
Case 3: Header.Bitrate = "48"
Case 4: Header.Bitrate = "56"
Case 5: Header.Bitrate = "64"
Case 6: Header.Bitrate = "80"
Case 7: Header.Bitrate = "96"
Case 8: Header.Bitrate = "112"
Case 9: Header.Bitrate = "128"
Case 10: Header.Bitrate = "160"
Case 11: Header.Bitrate = "192"
Case 12: Header.Bitrate = "224"
Case 13: Header.Bitrate = "256"
Case 14: Header.Bitrate = "320"
End Select
ElseIf (B(2) And (2 Or 4)) / 2 = 2 And (B(2) And 8) / 8 = 1 Then '1.2
Select Case (B(3) And (16 Or 32 Or 64 Or 128)) / 16
Case 1: Header.Bitrate = "32"
Case 2: Header.Bitrate = "48"
Case 3: Header.Bitrate = "56"
Case 4: Header.Bitrate = "64"
Case 5: Header.Bitrate = "80"
Case 6: Header.Bitrate = "96"
Case 7: Header.Bitrate = "112"
Case 8: Header.Bitrate = "128"
Case 9: Header.Bitrate = "160"
Case 10: Header.Bitrate = "192"
Case 11: Header.Bitrate = "224"
Case 12: Header.Bitrate = "256"
Case 13: Header.Bitrate = "320"
Case 14: Header.Bitrate = "384"
End Select
ElseIf (B(2) And (2 Or 4)) / 2 = 3 And (B(2) And 8) / 8 = 1 Then '1.1
Select Case (B(3) And (16 Or 32 Or 64 Or 128)) / 16
Case 1: Header.Bitrate = "32"
Case 2: Header.Bitrate = "64"
Case 3: Header.Bitrate = "96"
Case 4: Header.Bitrate = "128"
Case 5: Header.Bitrate = "160"
Case 6: Header.Bitrate = "192"
Case 7: Header.Bitrate = "224"
Case 8: Header.Bitrate = "256"
Case 9: Header.Bitrate = "288"
Case 10: Header.Bitrate = "320"
Case 11: Header.Bitrate = "352"
Case 12: Header.Bitrate = "384"
Case 13: Header.Bitrate = "416"
Case 14: Header.Bitrate = "448"
End Select
ElseIf (B(2) And (2 Or 4)) / 2 = 1 And (B(2) And 8) / 8 = 0 Then '2.3
Select Case (B(3) And (16 Or 32 Or 64 Or 128)) / 16
Case 1: Header.Bitrate = "8"
Case 2: Header.Bitrate = "16"
Case 3: Header.Bitrate = "24"
Case 4: Header.Bitrate = "32"
Case 5: Header.Bitrate = "64"
Case 6: Header.Bitrate = "80"
Case 7: Header.Bitrate = "56"
Case 8: Header.Bitrate = "64"
Case 9: Header.Bitrate = "128"
Case 10: Header.Bitrate = "160"
Case 11: Header.Bitrate = "192"
Case 12: Header.Bitrate = "224"
Case 13: Header.Bitrate = "256"
Case 14: Header.Bitrate = "320"
End Select
ElseIf (B(2) And (2 Or 4)) / 2 = 2 And (B(2) And 8) / 8 = 0 Then '2.2
Select Case (B(3) And (16 Or 32 Or 64 Or 128)) / 16
Case 1: Header.Bitrate = "32"
Case 2: Header.Bitrate = "48"
Case 3: Header.Bitrate = "56"
Case 4: Header.Bitrate = "64"
Case 5: Header.Bitrate = "80"
Case 6: Header.Bitrate = "96"
Case 7: Header.Bitrate = "112"
Case 8: Header.Bitrate = "128"
Case 9: Header.Bitrate = "160"
Case 10: Header.Bitrate = "192"
Case 11: Header.Bitrate = "224"
Case 12: Header.Bitrate = "256"
Case 13: Header.Bitrate = "320"
Case 14: Header.Bitrate = "384"
End Select
ElseIf (B(2) And (2 Or 4)) / 2 = 3 And (B(2) And 8) / 8 = 0 Then '2.1
Select Case (B(3) And (16 Or 32 Or 64 Or 128)) / 16
Case 1: Header.Bitrate = "32"
Case 2: Header.Bitrate = "64"
Case 3: Header.Bitrate = "96"
Case 4: Header.Bitrate = "128"
Case 5: Header.Bitrate = "160"
Case 6: Header.Bitrate = "192"
Case 7: Header.Bitrate = "224"
Case 8: Header.Bitrate = "256"
Case 9: Header.Bitrate = "288"
Case 10: Header.Bitrate = "320"
Case 11: Header.Bitrate = "352"
Case 12: Header.Bitrate = "384"
Case 13: Header.Bitrate = "416"
Case 14: Header.Bitrate = "448"
End Select
End If
If (B(2) And 8) / 8 = 1 Then '1.X
Select Case (B(3) And (4 Or 8)) / 4
Case 0: Header.Samplingfrequenz = "44100"
Case 1: Header.Samplingfrequenz = "48000"
Case 2: Header.Samplingfrequenz = "32000"
Case 3: Header.Samplingfrequenz = "-----"
End Select
Else
Select Case (B(3) And (4 Or 8)) / 4
Case 0: Header.Samplingfrequenz = "22050"
Case 1: Header.Samplingfrequenz = "24000"
Case 2: Header.Samplingfrequenz = "16000"
Case 3: Header.Samplingfrequenz = "-----"
End Select
End If
If B(3) And 2 Then Header.Padding = "Ja" Else Header.Padding = "Nein"
If B(3) And 1 Then Header.Privat = "Ja" Else Header.Privat = "Nein"
Select Case (B(4) And (128 Or 64)) / 64
Case 0: Header.Mode = "Stereo"
Case 1: Header.Mode = "Joint Stereo"
Case 2: Header.Mode = "Dual Channel"
Case 3: Header.Mode = "Mono"
End Select
If B(4) And 8 Then Header.Copyright = "Ja" Else Header.Copyright = "Nein"
If B(4) And 4 Then Header.Original = "Ja" Else Header.Original = "Nein"
Select Case (B(4) And (2 Or 1))
Case 0: Header.Emphasis = "kein"
Case 1: Header.Emphasis = "50/15ms"
Case 2: Header.Emphasis = "----"
Case 3: Header.Emphasis = "CCITT j.17"
End Select
' If B(3) And 2 Then
' framesize = CLng((144 * Val(Header.Bitrate / 2) * 1000 / Val(Header.Samplingfrequenz)) + 1)
' Else
' framesize = CLng(144 * Val(Header.Bitrate / 2) * 1000 / Val(Header.Samplingfrequenz))
' End If
' FCount = CLng((Header.Dateigröße - Header.Position - 4 - 128) / framesize)
'MsgBox FCount
If Val(Header.Bitrate) > 0 Then T1 = (Header.Dateigröße) / (Val(Header.Bitrate) * 1000) * 8 - 1
'T2 = T1 Mod 60
'T3 = T1 60
'MsgBox T3 & ":" & T2

Header.Länge = T1
End If
Exit Function
EH:
GetMPEGHeader = Err.Number
Close #1
Exit Function

End Function


'////////////////////////////////////////////////////
'////////////////////////////////////////////////////



Public Function GetID1Genre(Nr As Byte) As String
If Genre(0) = "" Then InitGenres
GetID1Genre = Genre(Nr)
End Function

Private Sub InitGenres()
Genre(0) = "Blues"
Genre(1) = "Classic Rock"
Genre(2) = "Country"
Genre(3) = "Dance"
Genre(4) = "Disco"
Genre(5) = "Funk"
Genre(6) = "Grunge"
Genre(7) = "Hip-Hop"
Genre(8) = "Jazz"
Genre(9) = "Metal"
Genre(10) = "New Age"
Genre(11) = "Oldies"
Genre(12) = "Other"
Genre(13) = "Pop"
Genre(14) = "R&B"
Genre(15) = "Rap"
Genre(16) = "Reggae"
Genre(17) = "Rock"
Genre(18) = "Techno"
Genre(19) = "Industrial"
Genre(20) = "Alternative"
Genre(21) = "Ska"
Genre(22) = "Death Metal"
Genre(23) = "Pranks"
Genre(24) = "Soundtrack"
Genre(25) = "Euro-Techno"
Genre(26) = "Ambient"
Genre(27) = "Trip-Hop"
Genre(28) = "Vocal"
Genre(29) = "Jazz+Funk"
Genre(30) = "Fusion"
Genre(31) = "Trance"
Genre(32) = "Classical"
Genre(33) = "Instrumental"
Genre(34) = "Acid"
Genre(35) = "House"
Genre(36) = "Game"
Genre(37) = "Sound Clip"
Genre(38) = "Gospel"
Genre(39) = "Noise"
Genre(40) = "Alt. Rock"
Genre(41) = "Bass"
Genre(42) = "Soul"
Genre(43) = "Punk"
Genre(44) = "Space"
Genre(45) = "Meditative"
Genre(46) = "Instrumental Pop"
Genre(47) = "Instrumental Rock"
Genre(48) = "Ethnic"
Genre(49) = "Gothic"
Genre(50) = "Darkwave"
Genre(51) = "Techno-Industrial"
Genre(52) = "Electronic"
Genre(53) = "Pop-Folk"
Genre(54) = "Eurodance"
Genre(55) = "Dream"
Genre(56) = "Southern Rock"
Genre(57) = "Comedy"
Genre(58) = "Cult"
Genre(59) = "Gangsta Rap"
Genre(60) = "Top 40"
Genre(61) = "Christian Rap"
Genre(62) = "Pop/Funk"
Genre(63) = "Jungle"
Genre(64) = "Native American"
Genre(65) = "Cabaret"
Genre(66) = "New Wave"
Genre(67) = "Psychedelic"
Genre(68) = "Rave"
Genre(69) = "Showtunes"
Genre(70) = "Trailer"
Genre(71) = "Lo-Fi"
Genre(72) = "Tribal"
Genre(73) = "Acid Punk"
Genre(74) = "Acid Jazz"
Genre(75) = "Polka"
Genre(76) = "Retro"
Genre(77) = "Musical"
Genre(78) = "Rock & Roll"
Genre(79) = "Hard Rock"
Genre(80) = "Folk"
Genre(81) = "Folk/Rock"
Genre(82) = "National Folk"
Genre(83) = "Swing"
Genre(84) = "Fast Fusion"
Genre(85) = "Bebob"
Genre(86) = "Latin"
Genre(87) = "Revival"
Genre(88) = "Celtic"
Genre(89) = "Bluegrass"
Genre(90) = "Avantgarde"
Genre(91) = "Gothic Rock"
Genre(92) = "Progressive Rock"
Genre(93) = "Psychedelic Rock"
Genre(94) = "Symphonic Rock"
Genre(95) = "Slow Rock"
Genre(96) = "Big Band"
Genre(97) = "Chorus"
Genre(98) = "Easy Listening"
Genre(99) = "Acoustic"
Genre(100) = "Humour"
Genre(101) = "Speech"
Genre(102) = "Chanson"
Genre(103) = "Opera"
Genre(104) = "Chamber Music"
Genre(105) = "Sonata"
Genre(106) = "Symphony"
Genre(107) = "Booty Bass"
Genre(108) = "Primus"
Genre(109) = "Porn Groove"
Genre(110) = "Satire"
Genre(111) = "Slow Jam"
Genre(112) = "Club"
Genre(113) = "Tango"
Genre(114) = "Samba"
Genre(115) = "Folklore"
Genre(116) = "Ballad"
Genre(117) = "Power Ballad"
Genre(118) = "Rhythmic Soul"
Genre(119) = "Freestyle"
Genre(120) = "Duet"
Genre(121) = "Punk Rock"
Genre(122) = "Drum Solo"
Genre(123) = "A Cappella"
Genre(124) = "Euro-House"
Genre(125) = "Dance Hall"
Genre(126) = "Goa"
Genre(127) = "Drum & Bass"
Genre(128) = "Club-House"
Genre(129) = "Hardcore"
Genre(130) = "Terror"
Genre(131) = "Indie"
Genre(132) = "BritPop"
Genre(133) = "Negerpunk"
Genre(134) = "Polsk Punk"
Genre(135) = "Beat"
Genre(136) = "Christian Gangsta Rap"
Genre(137) = "Heavy Metal"
Genre(138) = "Black Metal"
Genre(139) = "Crossover"
Genre(140) = "Contemporary Christian"
Genre(141) = "Christian Rock"
Genre(142) = "Merengue"
Genre(143) = "Salsa"
Genre(144) = "Thrash Metal"
Genre(145) = "Anime"
Genre(146) = "JPop"
Genre(147) = "Synthpop"
End Sub

Public Function GetID2FrameCnt(Name As String) As String
If StdFrames(0).Desc = "" Then InitStdFrames
Name = Mid(Trim(UCase(Name)), 1, 4)
i = 0
f = False
Do
If StdFrames(i).Desc = "" Then Exit Do
If Name = StdFrames(i).Name Then
f = True
Else
i = i + 1
End If
Loop Until f = True
If f = True Then
GetID2FrameCnt = StdFrames(i).Desc
Else
GetID2FrameCnt = "Unknown frame"
End If
End Function

Public Sub GetID2Frame(ByVal Nr As Long, Name As String, Optional Desc As String)
If StdFrames(0).Desc = "" Then InitStdFrames
Name = StdFrames(Nr).Name
Desc = StdFrames(Nr).Desc
End Sub

Private Sub InitStdFrames()
StdFrames(0).Name = "AENC"
StdFrames(0).Desc = "Audio encryption"
StdFrames(1).Name = "APIC"
StdFrames(1).Desc = "Attached picture"
StdFrames(2).Name = "ASPI"
StdFrames(2).Desc = "Audio seek point index"
StdFrames(3).Name = "COMM"
StdFrames(3).Desc = "Comments"
StdFrames(4).Name = "COMR"
StdFrames(4).Desc = "Comercial frame"
StdFrames(5).Name = "ENCR"
StdFrames(5).Desc = "Encryption method registration"
StdFrames(6).Name = "EQU2"
StdFrames(6).Desc = "Equalisation (2)"
StdFrames(7).Name = "ETCO"
StdFrames(7).Desc = "Event timing codes"
StdFrames(8).Name = "GEOB"
StdFrames(8).Desc = "General encapsulated object"
StdFrames(9).Name = "GRID"
StdFrames(9).Desc = "Group identification registration"
StdFrames(10).Name = "LINK"
StdFrames(10).Desc = "Linked information"
StdFrames(11).Name = "MCDI"
StdFrames(11).Desc = "Music CD identifier"
StdFrames(12).Name = "MLLT"
StdFrames(12).Desc = "MPEG location lookup table"
StdFrames(13).Name = "OWNE"
StdFrames(13).Desc = "Ownership frame"
StdFrames(14).Name = "PRIV"
StdFrames(14).Desc = "Private Frame"
StdFrames(15).Name = "PCNT"
StdFrames(15).Desc = "Play counter"
StdFrames(16).Name = "POPM"
StdFrames(16).Desc = "Popularimeter"
StdFrames(17).Name = "POSS"
StdFrames(17).Desc = "Position synchronisation frame"
StdFrames(18).Name = "RBUF"
StdFrames(18).Desc = "Recommended buffer size"
StdFrames(19).Name = "RVA2"
StdFrames(19).Desc = "Relative volume adjustment (2)"
StdFrames(20).Name = "RVRB"
StdFrames(20).Desc = "Reverb"
StdFrames(21).Name = "SEEK"
StdFrames(21).Desc = "Seek frame"
StdFrames(22).Name = "SIGN"
StdFrames(22).Desc = "Signature frame"
StdFrames(23).Name = "SYLT"
StdFrames(23).Desc = "Synchronised lyric/text"
StdFrames(24).Name = "SYTC"
StdFrames(24).Desc = "Synchronised tempo codes"
StdFrames(25).Name = "TALB"
StdFrames(25).Desc = "Album/Movie/Show title"
StdFrames(26).Name = "TBPM"
StdFrames(26).Desc = "BPM (beats per minute)"
StdFrames(27).Name = "TCOM"
StdFrames(27).Desc = "Composer"
StdFrames(28).Name = "TCON"
StdFrames(28).Desc = "Content type"
StdFrames(29).Name = "TCOP"
StdFrames(29).Desc = "Copyright message"
StdFrames(30).Name = "TDEN"
StdFrames(30).Desc = "Encoding time"
StdFrames(31).Name = "TDLY"
StdFrames(31).Desc = "Playlist delay"
StdFrames(32).Name = "TDOR"
StdFrames(32).Desc = "Original release time"
StdFrames(33).Name = "TDRC"
StdFrames(33).Desc = "Recordimg time"
StdFrames(34).Name = "TDRL"
StdFrames(34).Desc = "Release time"
StdFrames(35).Name = "TDTG"
StdFrames(35).Desc = "Tagging time"
StdFrames(36).Name = "TENC"
StdFrames(36).Desc = "Encoded by"
StdFrames(37).Name = "TEXT"
StdFrames(37).Desc = "Lyricist/Text writer"
StdFrames(38).Name = "TFLT"
StdFrames(38).Desc = "File type"
StdFrames(39).Name = "TIPL"
StdFrames(39).Desc = "Involved people list"
StdFrames(40).Name = "TIT1"
StdFrames(40).Desc = "Content group description"
StdFrames(41).Name = "TIT2"
StdFrames(41).Desc = "Title/songname/content description"
StdFrames(42).Name = "TIT3"
StdFrames(42).Desc = "Subtitle/Description refinement"
StdFrames(43).Name = "TKEY"
StdFrames(43).Desc = "Initial key"
StdFrames(44).Name = "TLAN"
StdFrames(44).Desc = "Language(s)"
StdFrames(45).Name = "TLEN"
StdFrames(45).Desc = "Length"
StdFrames(46).Name = "TMCL"
StdFrames(46).Desc = "Musicial credits list"
StdFrames(47).Name = "TMED"
StdFrames(47).Desc = "Media type"
StdFrames(48).Name = "TMOO"
StdFrames(48).Desc = "Mood"
StdFrames(49).Name = "TOAL"
StdFrames(49).Desc = "Original album/movie/show title"
StdFrames(50).Name = "TOFN"
StdFrames(50).Desc = "Original filename"
StdFrames(51).Name = "TOLY"
StdFrames(51).Desc = "Original lyricist(s)/text writer(s)"
StdFrames(52).Name = "TOPE"
StdFrames(52).Desc = "Original artist(s)/performer(s)"
StdFrames(53).Name = "TOWN"
StdFrames(53).Desc = "File owner/license"
StdFrames(54).Name = "TPE1"
StdFrames(54).Desc = "Lead performer(s)/Soloist(s)"
StdFrames(55).Name = "TPE2"
StdFrames(55).Desc = "Band/orchestra/accompaniment"
StdFrames(56).Name = "TPE3"
StdFrames(56).Desc = "Conductor/performer refinement"
StdFrames(57).Name = "TPE4"
StdFrames(57).Desc = "Interpreted, remixed, or otherwise modified by"
StdFrames(58).Name = "TPOS"
StdFrames(58).Desc = "Part of a set"
StdFrames(59).Name = "TPRO"
StdFrames(59).Desc = "Produced notice"
StdFrames(60).Name = "TPUB"
StdFrames(60).Desc = "Publisher"
StdFrames(61).Name = "TRCK"
StdFrames(61).Desc = "Track number/Position in a set"
StdFrames(62).Name = "TRSN"
StdFrames(62).Desc = "Internet radio station name"
StdFrames(63).Name = "TRSO"
StdFrames(63).Desc = "Internet radio station owner"
StdFrames(64).Name = "TSOA"
StdFrames(64).Desc = "Album sort order"
StdFrames(65).Name = "TSOP"
StdFrames(65).Desc = "Performer sort order"
StdFrames(66).Name = "TSOT"
StdFrames(66).Desc = "Title sort order"
StdFrames(67).Name = "TSRC"
StdFrames(67).Desc = "ISRC (international standard recording code)"
StdFrames(68).Name = "TSSE"
StdFrames(68).Desc = "Software/Hardware and settings used for encoding"
StdFrames(69).Name = "TSST"
StdFrames(69).Desc = "Set subtitle"
StdFrames(70).Name = "TXXX"
StdFrames(70).Desc = "User defined text information frame"
StdFrames(71).Name = "UFID"
StdFrames(71).Desc = "Unique file identifier"
StdFrames(72).Name = "USER"
StdFrames(72).Desc = "Terms of use"
StdFrames(73).Name = "USLT"
StdFrames(73).Desc = "Unsyncronised lyric/text transcription"
StdFrames(74).Name = "WCOM"
StdFrames(74).Desc = "Comercial information"
StdFrames(75).Name = "WCOP"
StdFrames(75).Desc = "Copyright/Legal information"
StdFrames(76).Name = "WOAF"
StdFrames(76).Desc = "Official audio file webpage"
StdFrames(77).Name = "WOAR"
StdFrames(77).Desc = "Official artist/performer webpage"
StdFrames(78).Name = "WOAS"
StdFrames(78).Desc = "Official audio source webpage"
StdFrames(79).Name = "WORS"
StdFrames(79).Desc = "Official Internet radio station homepage"
StdFrames(80).Name = "WPAY"
StdFrames(80).Desc = "Payment"
StdFrames(81).Name = "WPUB"
StdFrames(81).Desc = "Publishers official webpage"
StdFrames(82).Name = "WXXX"
StdFrames(82).Desc = "User definde URL link frame"
StdFrames(83).Name = "TYER"
StdFrames(83).Desc = "Year"

End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
id3 Tag setzen.50Gabrial05.05.02 22:27
kann niemand helfen?? 27Gabrial06.05.02 16:15

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel