The Windows Media Player provides an easy, quick way to drop MP3
capability into a Visual Basic application. However, once you have
an MP3, you may have wondered how to read information about the song,
such as the song title and artist's name. If the MP3 file uses the
most popular tag encryption, ID3, then you're in luck. This standard
stores the Tag information in the last 128 bytes of the file
(Tag:3, Title:30, Artist:30, Album:30, Year:4, Comment:30, Genre:1)
To read this information, first open the MP3 file and grab the last
128 bytes. With ID3, the first three slots hold the string TAG if the
file actually contains information. If the file does contain Tag
information, store the last 128 bytes in a custom variable. After that,
cycle through the MP3 file, extracting information as you go. The
following procedure shows the code that extracts this information as
well as creates several important variables to use later on:Option Explicit
Private Type TagInfo
Tag As String * 3
Songname As String * 30
artist As String * 30
album As String * 30
year As String * 4
comment As String * 30
genre As String * 1
End Type
Dim FileName As String
Dim CurrentTag As TagInfo
Private Sub Form1_Load()
Dim temp As String
On Error Resume Next
FileName = App.Path & "myMP3.mp3"
Open FileName For Binary As #1
With CurrentTag
Get #1, FileLen(FileName) - 127, .Tag
If Not .Tag = "TAG" Then
label8.Caption = "No tag"
Close #1
Exit Sub
End If
Get #1, , .Songname
Get #1, , .artist
Get #1, , .album
Get #1, , .year
Get #1, , .comment
Get #1, , .genre
Close #1
txtTitle = RTrim(.Songname)
txtArtist = RTrim(.artist)
txtAlbum = RTrim(.album)
txtYear = RTrim(.year)
txtComment = RTrim(.comment)
Temp = RTrim(.genre)
txtGenreCode = Asc(Temp)
Combo1.ListIndex = CInt(txtGenreCode) - 1
End With
End Sub
Notice that the code has to handle the genre character a little
differently. That's because ID3 stores this data as a single ASCII
character. To match up the actual number with its corresponding
description--say contained in a combobox--the procedure converts the
ASCII to a number, and then looks up that number in the combobox.
MP3 Tag information
By ElementK Journals, published on 14 Jul 2001
| Filed in
You might also like...
VB 6 forum discussion
-
CorelDRAW VBA: cdrTraceLineDrawing FAILS, producing single linear path instead of Centerline trace?
by dancemanj (0 replies)
-
client/server application using activex
by beautifulheart (0 replies)
-
System Error &H8007007E. The specifed module could not be found.
by swiftsafe (5 replies)
-
Invitation to take part in an academic research study
by researchlab (0 replies)
-
Send SMS with SMPP
by mmahmoud (0 replies)
VB 6 podcasts
-
Stack Overflow Podcast: Podcast #45 – Keeping it Sharp
Published 7 years ago, running time 0h54m
Our guest this week is Eric Lippert – language architect extraordinaire and famous for all his work at Microsoft in developing their languages Eric joined Microsoft right out of college and was originally working on VB It’s time for everyone’s favorite game: Name the Worst Feature of that Microso.
Comments