vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Multimedia & Sound · Audio   |   VB-Versionen: VB615.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 MichelbachBewertung:  Views:  43.498 
www.japi-empire.de.vuSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.