Тег ID3v1 хранится в последних 128 байтах файла.Первые три байта - это «TAG», указывающий, что файл хранит тег.Итак, сначала проверьте, есть ли в файле тег, а затем прочитайте их.
Я не знаю VB, но я думаю, что прежде чем читать фрейм, сначала следует:
- Открыть файл
Dim objMP3V1 As New MP3ID3v1("file_path")
- Проверьте, содержит ли файл тег ID3v1, проверив, является ли флаг
objMP3V1.TagExists
истинным - Затем прочитайте поля / кадры.
РЕДАКТИРОВАТЬ
Код в ссылке говорит:
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 и протестировать его).