Rubrik: Multimedia & Sound · Audio | VB-Versionen: VB6 | 15.05.02 |
Auslesen, ändern und speichern von ID3v1-Tags Dieses Beispiel zeigt, wie sich die MP3-Informationen ID3v1 auslesen, ändern und wieder speichern lassen - einschließlich Genre. | ||
Autor: Thomas Michelbach | Bewertung: | Views: 43.498 |
www.japi-empire.de.vu | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Vor längerer Zeit hatten wir in einem Tipp gezeigt, wie sich MP3-Informationen (ID3v1) auslesen lassen. Hierbei wurde allerdings der Index des Genres nicht korrekt ausgelesen.
Unser heutiger Tipp hingegen liest alle ID3v1-Tag Informationen korrekt aus und kann diese auch wieder zurückspeichern.
Die MP3-Informationen werden hierbei in einem benutzerdefinierten Datentyp zwischengespeichert:
' MP3-Informationen (ID3v1) Private Type ID3v1 TAG As String * 3 ' TAG Title As String * 30 ' Titel des Liedes Artist As String * 30 ' Interpret Album As String * 30 ' Album Year As String * 4 ' Erscheinungsjahr Comments As String * 30 ' Kommentar Genre As Byte ' Indexnummer des Genres End Type
Wie bereits erwähnt, soll der Index des Genres diesmal korrekt eingelesen und verarbeitet werden
' Genre-Auflistung Private Enum Genre Blues = 0 ClassicRock = 1 Country = 2 Dance = 3 Disco = 4 Funk = 5 Grunge = 6 HipHop = 7 Jazz = 8 Meta = 9 NewAge = 10 Oldies = 11 Other = 12 Pop = 13 R_B = 14 Rap = 15 Reggae = 16 Rock = 17 Techno = 18 Industrial = 19 Alternative = 20 Ska = 21 DeathMetal = 22 Pranks = 23 Soundtrack = 24 EuroTechno = 25 Ambient = 26 TripHop = 27 Vocal = 28 JazzFunk = 29 Fusion = 30 Trance = 31 Classical = 32 Instrumental = 33 Acid = 34 House = 35 Game = 36 SoundClip = 37 Gospel = 38 Noise = 39 AltRock = 40 Bas = 41 Soul = 42 Punk = 43 Space = 44 Meditative = 45 InstrumentalPop = 46 InstrumentalRock = 47 Ethnic = 48 Gothic = 49 Darkwave = 50 TechnoIndustrial = 51 Electronic = 52 PopFolk = 53 Eurodance = 54 Dream = 55 SouthernRock = 56 Comedy = 57 Cult = 58 Gangsta = 59 Top40 = 60 ChristianRap = 61 Pop_Funk = 62 Jungle = 63 NativeAmerican = 64 Cabaret = 65 NewWave = 66 Psychadelic = 67 Rave = 68 Showtunes = 69 Trailer = 70 LoFi = 71 Tribal = 72 AcidPunk = 73 AcidJazz = 74 Polka = 75 Retro = 76 Musical = 77 RockNRoll = 78 HardRock = 79 Folk = 80 Folk_Rock = 81 NationalFolk = 82 Swing = 83 Fusion1 = 84 Bebob = 85 Latin = 86 Revival = 87 Celtic = 88 Bluegrass = 89 Avantgarde = 90 GothicRock = 91 ProgressiveRock = 92 PsychedelicRock = 93 SymphonicRock = 94 SlowRock = 95 BigBand = 96 Chorus = 97 EasyListening = 98 Acoustic = 99 Humour = 100 Speech = 101 Chanson = 102 Opera = 103 ChamberMusic = 104 Sonata = 105 Symphony = 106 BootyBass = 107 Primus = 108 PornGroove = 109 Satire = 110 SlowJam = 111 Club = 112 Tango = 113 Samba = 114 Folklore = 115 End Enum
ID3v1-Tag einer MP3-Datei auslesen
' MP3-Infos auslesen Private Function MP3_ReadID3v1(ByVal sFIle As String) As ID3v1 Dim F As Integer Dim UDT_MP3 As ID3v1 F = FreeFile Open sFIle For Binary As #F Seek #F, LOF(F) - Len(UDT_MP3) + 1 Get #F, , UDT_MP3 Close #F If UDT_MP3.TAG = "TAG" Then ' "TAG" vorhanden? MP3_ReadID3v1 = UDT_MP3 End If End Function
ID3v1-Tag speichern
' MP3-Infos schreiben Private Sub MP3_SaveID3v1(ByVal sFIle As String, _ UDT_MP3 As ID3v1) Dim F As Integer F = FreeFile Open sFIle For Binary Access Write As #F Seek #F, FileLen(sFIle) - 127 Put #F, , UDT_MP3 Close #F End Sub
Beispiel
Zunächst werden die MP3-Informationen einer MP3-Datei ausgelesen und in einem benutzerdefinierten Datentyp zwischengespeichert.
' MP3-Infos lesen und anzeigen Dim sFile As String Dim UDT_MP3 As ID3v1 sFile = App.Path & "\test.mp3" UDT_MP3 = MP3_ReadID3v1(sFile)
Jetzt werden die MP3-Informationen verändert...
With UDT_MP3 .Title = "MyMP3 File" .Artist = "Me" .Album = "My Album" .Year = "2002" .Comments = "No comment" .Genre = Genre.Disco End With
Diese Änderungen sollen nun in die MP3-Datei gespeichert werden...
MP3_SaveID3v1 txtFilename.Text, UDT_MP3