vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
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:     [ Jetzt bewerten ]Views:  43.439 
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

Dieser Tipp wurde bereits 43.439 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (2 Beiträge)

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 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