Lecture des informations tag mp3 dans vb.net
Question
Je fais un projet en VB.NET 2005, où je dois extraire les informations de balise de fichiers mp3. A cette fin, j'ai le code utilisé dans cette . Mais la question est quand l'un de l'étiquette est vide, il n'a pas retourné aucune valeur.
Par exemple, en utilisant ce que je peux récupérer des informations sur l'album comme celui-ci,
Dim album As String = ""
album = objMP3V1.Frame(MP3ID3v1.FrameTypes.Album)
Mais je ne savais pas comment vérifier la variable de l'album est vide ou non, j'ai vérifié variable album
If (album = "") Then
MsgBox("true")
ElseIf (album Is Nothing) Then
MsgBox("true")
ElseIf (album Is DBNull.Value) Then
MsgBox("true")
End If
mais sans succès, quelqu'un peut me aider.
La solution 2
Je l'ai utilisé l'expression régulière pour résoudre ce problème. Merci pour votre aide ...
Imports System.Text.RegularExpressions
dim RegEx As New RegularExpressions.Regex("^[a-zA-Z0-9]+$")
dim Match As Match
dim film as string
film = song.Frame(MP3ID3v1.FrameTypes.Album)
Match = RegEx.Match(film)
film1 = IIf((Match.Success), film.ToString, "")
Si vous cherchez un tag plus professionnel editior Voici un lien !
Autres conseils
La balise ID3v1 est stocké dans les 128 derniers octets du fichier. Les trois premiers octets est révélateur « TAG » que le fichier stocke la balise. Alors d'abord vérifier si le fichier a une étiquette, puis les lire.
Je ne sais pas VB mais je pense avant de lire le cadre, vous devez d'abord:
- Ouvrez le fichier
Dim objMP3V1 As New MP3ID3v1("file_path")
- test, si le fichier a une balise ID3v1 en elle en testant si l'indicateur de
objMP3V1.TagExists
est vrai - Ensuite, lisez les champs / images.
EDIT
Le code dans le lien dit
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
Alors, si la balise n'est pas présent, alors il doit avoir ""
désigné comme la chaîne.
champs ID3v1 sont de longueur fixe, donc s'il n'y a pas de chaîne dans le champ album
alors il doit contenir une chaîne de num, qui est, le premier emplacement du champ contiendra un '\0'
de caractère nul, donc il retournera une valeur nulle chaîne ""
.
Je vous dis de vérifier la présente sur un fichier musical exemple avec des tags ID3v1. (Vous pouvez même créer un fichier texte formaté avec ID3v1 et tester).