Как написать исполнителя альбома id3v2 с помощью taglib с VB.Net - PullRequest
0 голосов
/ 02 мая 2011

Я не могу понять, как заставить taglib сохранять определенные теги, которые используют массивы.Например, когда я сохраняю альбом, я могу просто набрать ID31.Album = txtalubm1.text.Но если я хочу сохранить albumartist, поскольку он представляет собой массив, я не могу сделать это так же.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

2 голосов
/ 03 августа 2011
tagFile.Tag.AlbumArtists = New String() {"Album Artist"}
0 голосов
/ 13 ноября 2012

Brilliant!

Последний шаг в моей программе исправления метаданных mp3 VB2010 Express.

Теперь это работает так: -

Храните mp3-файлы в папке с именем альбома в папке с именем исполнителя.

Переименуйте файлы, чтобы в первых двух символах был номер дорожки, затем пробел, а затем заголовок.

Создайте новый проект с текстовым полем с именем txtFolder и кнопкой с именем cmdOK.

Добавьте taglib-sharp.dll в качестве ссылки.

Запустите проект.

Введите строку папки альбома в виде текста в текстовом поле и нажмите ОК.

Этот код изменяет метаданные.

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
...