ID3v1 标记存储在文件的最后 128 个字节中。前三个字节是“TAG”,表示文件存储了标签。所以首先检查文件是否有标签,然后读取它们。
我不知道VB,但我认为在阅读框架之前,您应该首先:
- 打开文件
Dim objMP3V1 As New MP3ID3v1("file_path")
- 通过测试
objMP3V1.TagExists
标志是否为真来测试文件中是否包含 ID3v1 标记
- 然后读取字段/帧。
编辑
链接中的代码说
FileGet(intFile, strTag, lngLOF - 127, True)
If (strTag.ToUpper <> "TAG") Then
' No ID3v1 tag found
mblnTagExists = False
mobjFrame(0) = ""
mobjFrame(1) = ""
mobjFrame(2) = ""
mobjFrame(3) = ""
mobjFrame(4) = ""
mobjFrame(5) = ""
mobjFrame(6) = ""
Else
' ID3v1 tag found
mblnTagExists = True
' Read all frames from the file
FileGet(intFile, strTitle)
FileGet(intFile, strArtist)
FileGet(intFile, strAlbum)
FileGet(intFile, strYear)
FileGet(intFile, strComment)
FileGet(intFile, bytDummy)
FileGet(intFile, bytTrack)
FileGet(intFile, bytGenre)
' Assign the frame content to the properties
mobjFrame(0) = strTitle
mobjFrame(1) = strArtist
mobjFrame(2) = strAlbum
mobjFrame(3) = strYear
mobjFrame(4) = bytTrack
mobjFrame(5) = strComment
mobjFrame(6) = bytGenre
End If
End If
因此,如果标签不存在,那么它应该""
被分配为字符串。
ID3v1 字段是固定长度的,所以如果字段中没有字符串,album
那么它应该包含一个 num 字符串,即该字段的第一个位置将包含一个空字符'\0'
,因此它会返回一个空字符串""
。我会告诉你在带有 ID3v1 标签的示例音乐文件上检查这个。(您甚至可以创建一个使用 ID3v1 格式化的文本文件并对其进行测试)。