#vb.net #taglib
#vb.net #taglib
Вопрос:
Я не могу понять, как заставить taglib сохранять определенные теги, которые используют массивы. Например, когда я сохраняю альбом, я могу просто ввести ID31.Album = txtalubm1.text
. Но если я хочу сохранить albumartist, поскольку это массив, я, похоже, не могу сделать это таким же образом.
Кто-нибудь знает, как это сделать?
Ответ №1:
tagFile.Tag.AlbumArtists = New String() {"Album Artist"}
Ответ №2:
Блестяще!
Последний шаг в моей программе изменения метаданных mp3 VB2010 Express.
Теперь это работает следующим образом: —
Храните mp3-файлы в папке с названием альбома под папкой с именами исполнителей.
Переименуйте файлы так, чтобы в первых двух символах был номер трека, за которым следовал пробел, а затем название.
Создайте новый проект с текстовым полем под названием txtFolder и кнопкой под названием cmdOK.
Добавить taglib-sharp.dll в качестве ссылки.
Запустите проект.
Введите строку папки альбома в виде текста в текстовое поле и нажмите OK.
Этот код изменит метаданные.
Private Sub cmdOK_Click() Handles cmdOK.Click
'
'check folder exists
'
If Not My.Computer.FileSystem.DirectoryExists(txtFolder.Text) Then
MsgBox("Folder does not exist", vbExclamation)
Exit Sub
End If
'
'set up details from folder name
'
LastSlash = InStrRev(txtFolder.Text, "")
AlbumStore = Microsoft.VisualBasic.Mid(txtFolder.Text, LastSlash 1)
FolderStore = Microsoft.VisualBasic.Left(txtFolder.Text, LastSlash - 1)
LastSlash = InStrRev(FolderStore, "")
ArtistStore = Microsoft.VisualBasic.Mid(FolderStore, LastSlash 1)
'
'get each file in folder
'
For Each foundFile As String In My.Computer.FileSystem.GetFiles(txtFolder.Text)
If LCase(Microsoft.VisualBasic.Right(foundFile, 4)) = ".mp3" Then
'
'set up details from file name
'
LastSlash = InStrRev(foundFile, "")
FileStore = Microsoft.VisualBasic.Mid(foundFile, LastSlash 1)
FileStore = Microsoft.VisualBasic.Left(FileStore, Len(FileStore) - 4)
TrackStore = Microsoft.VisualBasic.Left(FileStore, 2)
TitleStore = Microsoft.VisualBasic.Mid(FileStore, 4)
'
'set up and modify metadata
'
Dim mp3 As TagLib.File = TagLib.File.Create(foundFile)
mp3.Tag.Track = Val(TrackStore)
mp3.Tag.Title = TitleStore
mp3.Tag.Album = AlbumStore
mp3.Tag.Performers = New String() {ArtistStore}
mp3.Tag.AlbumArtists = New String() {ArtistStore}
mp3.Save()
mp3.Dispose()
End If
Next
End
End Sub
Комментарии:
1. Кажется, вы включаете / отвечаете гораздо больше, чем на исходный вопрос. Разве ответ на актуальный вопрос не должен состоять всего из нескольких строк?