Ce code à inserer dans un module vous permettra de tagger un MP3 et de lire son tag
Source / Exemple :
Global ReadOnly As Boolean
Dim FF
Dim txt1 As String * 30
Dim txt2 As String * 4
Global sngG As Byte
Public Enum Mp3GenreConv
VersTexte = 0
VersByte = 1
End Enum
Option Explicit
Public Function GetTitre(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 124, txt1
Close FF
GetTitre = Trim$(txt1)
End Function
Public Function GetAuteur(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 94, txt1
Close FF
GetAuteur = Trim$(txt1)
End Function
Public Function GetAlbum(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 64, txt1
Close FF
GetAlbum = Trim$(txt1)
End Function
Public Function GetCommentaire(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 30, txt1
Close FF
GetCommentaire = Trim$(txt1)
End Function
Public Function GetAnnee(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 34, txt2
Close FF
GetAnnee = Trim$(txt2)
End Function
Public Function GetGenre(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier), sngG
Close FF
If sngG > 79 Then sngG = 12
GetGenre = GenreConv(VersTexte, sngG)
End Function
Public Function PutTitre(fichier As String, Titre As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Titre
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 124, txt1
Close FF
End Function
Public Function PutAuteur(fichier As String, Auteur As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Auteur
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 94, txt1
Close FF
End Function
Public Function PutAlbum(fichier As String, Album As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Album
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 64, txt1
Close FF
End Function
Public Function PutCommentaire(fichier As String, Commentaire As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Commentaire
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 30, txt1
Close FF
End Function
Public Function PutAnnee(fichier As String, Annee As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt2 = Annee
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 34, txt2
Close FF
End Function
Public Function PutGenre(fichier As String, Genre As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
sngG = GenreConv(VersByte, Genre)
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier), sngG
Close FF
End Function
Public Function GenreConv(Sens As Mp3GenreConv, Genre As Variant) As Variant
Dim G As Variant
If Sens = VersByte Then
If VarType(Genre) <> vbString Then
MsgBox "Le genre doit être du texte !", vbExclamation + vbOKOnly
GenreConv = -1
Exit Function
End If
Select Case Genre
Case "Blues"
G = 0
Case "Classic Rock"
G = 1
Case "Country"
G = 2
Case "Dance"
G = 3
Case "Disco"
G = 4
Case "Funk"
G = 5
Case "Grunge"
G = 6
Case "Hip-Hop"
G = 7
Case "Jazz"
G = 8
Case "Metal"
G = 9
Case "New Age"
G = 10
Case "Oldies"
G = 11
Case "Other"
G = 12
Case "Pop"
G = 13
Case "R&B"
G = 14
Case "Rap"
G = 15
Case "Reggae"
G = 16
Case "Rock"
G = 17
Case "Techno"
G = 18
Case "Industrial"
G = 19
Case "Alternative"
G = 20
Case "Ska"
G = 21
Case "Death Metal"
G = 22
Case "Pranks"
G = 23
Case "Soundtrack"
G = 24
Case "Euro-Techno"
G = 25
Case "Ambient"
G = 26
Case "Trip-Hop"
G = 27
Case "Vocal"
G = 28
Case "Jazz+Funk"
G = 29
Case "Fusion"
G = 30
Case "Trance"
G = 31
Case "Classical"
G = 32
Case "Instrumental"
G = 33
Case "Acid"
G = 34
Case "House"
G = 35
Case "Game"
G = 36
Case "Sound Clip"
G = 37
Case "Gospel"
G = 38
Case "Noise"
G = 39
Case "AlternRock"
G = 40
Case "Bass"
G = 41
Case "Soul"
G = 42
Case "Punk"
G = 43
Case "Space"
G = 44
Case "Meditative"
G = 45
Case "Instrumental Pop"
G = 46
Case "Instrumental Rock"
G = 47
Case "Ethnic"
G = 48
Case "Gothic"
G = 49
Case "Darkwave"
G = 50
Case "Techno-Industrial"
G = 51
Case "Electronic"
G = 52
Case "Pop-Folk"
G = 53
Case "Eurodance"
G = 54
Case "Dream"
G = 55
Case "Southern Rock"
G = 56
Case "Comedy"
G = 57
Case "Cult"
G = 58
Case "Gangsta"
G = 59
Case "Top 40"
G = 60
Case "Christian Rap"
G = 61
Case "Pop/Funk"
G = 62
Case "Jungle"
G = 63
Case "Native American"
G = 64
Case "Cabaret"
G = 65
Case "New Wave"
G = 66
Case "Psychadelic"
G = 67
Case "Rave"
G = 68
Case "Showtunes"
G = 69
Case "Trailer"
G = 70
Case "Lo-Fi"
G = 71
Case "Tribal"
G = 72
Case "Acid Punk"
G = 73
Case "Acid Jazz"
G = 74
Case "Polka"
G = 75
Case "Retro"
G = 76
Case "Musical"
G = 77
Case "Rock & Roll"
G = 78
Case "Hard Rock"
G = 79
End Select
End If
If Sens = VersTexte Then
If VarType(Genre) <> vbByte Then
MsgBox "Le genre doit être de type Byte !", vbExclamation + vbOKOnly
GenreConv = -1
Exit Function
End If
Select Case Genre
Case 0
G = "Blues"
Case 1
G = "Classic Rock"
Case 2
G = "Country"
Case 3
G = "Dance"
Case 4
G = "Disco"
Case 5
G = "Funk"
Case 6
G = "Grunge"
Case 7
G = "Hip-Hop"
Case 8
G = "Jazz"
Case 9
G = "Metal"
Case 10
G = "New Age"
Case 11
G = "Oldies"
Case 12
G = "Other"
Case 13
G = "Pop"
Case 14
G = "R&B"
Case 15
G = "Rap"
Case 16
G = "Reggae"
Case 17
G = "Rock"
Case 18
G = "Techno"
Case 19
G = "Industrial"
Case 20
G = "Alternative"
Case 21
G = "Ska"
Case 22
G = "Death Metal"
Case 23
G = "Pranks"
Case 24
G = "Soundtrack"
Case 25
G = "Euro-Techno"
Case 26
G = "Ambient"
Case 27
G = "Trip-Hop"
Case 28
G = "Vocal"
Case 29
G = "Jazz+Funk"
Case 30
G = "Fusion"
Case 31
G = "Trance"
Case 32
G = "Classical"
Case 33
G = "Instrumental"
Case 34
G = "Acid"
Case 35
G = "House"
Case 36
G = "Game"
Case 37
G = "Sound Clip"
Case 38
G = "Gospel"
Case 39
G = "Noise"
Case 40
G = "AlternRock"
Case 41
G = "Bass"
Case 42
G = "Soul"
Case 43
G = "Punk"
Case 44
G = "Space"
Case 45
G = "Meditative"
Case 46
G = "Instrumental Pop"
Case 47
G = "Instrumental Rock"
Case 48
G = "Ethnic"
Case 49
G = "Gothic"
Case 50
G = "Darkwave"
Case 51
G = "Techno-Industrial"
Case 52
G = "Electronic"
Case 53
G = "Pop-Folk"
Case 54
G = "Eurodance"
Case 55
G = "Dream"
Case 56
G = "Southern Rock"
Case 57
G = "Comedy"
Case 58
G = "Cult"
Case 59
G = "Gangsta"
Case 60
G = "Top 40"
Case 61
G = "Christian Rap"
Case 62
G = "Pop/Funk"
Case 63
G = "Jungle"
Case 64
G = "Native American"
Case 65
G = "Cabaret"
Case 66
G = "New Wave"
Case 67
G = "Psychadelic"
Case 68
G = "Rave"
Case 69
G = "Showtunes"
Case 70
G = "Trailer"
Case 71
G = "Lo-Fi"
Case 72
G = "Tribal"
Case 73
G = "Acid Punk"
Case 74
G = "Acid Jazz"
Case 75
G = "Polka"
Case 76
G = "Retro"
Case 77
G = "Musical"
Case 78
G = "Rock & Roll"
Case 79
G = "Hard Rock"
End Select
End If
GenreConv = G
End Function
Private Function CheckTag(fichier As String, Ecrire As Boolean) As Boolean
ReadOnly = False
If (GetAttr(fichier) = 1 Or GetAttr(fichier) = 33) And Ecrire = True Then
MsgBox "Le fichier est en lecture seule !", vbExclamation + vbOKOnly, "Tag"
ReadOnly = True
Exit Function
End If
CheckTag = True
Dim Tag As String * 3
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 127, Tag
If Tag <> "TAG" Then CheckTag = False
If Ecrire = True And CheckTag = False Then
Dim TagSpace As String * 128
TagSpace = "TAG"
Put FF, FileLen(fichier), TagSpace
End If
Close FF
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.