Хочется, чтобы программа выводила информацию о текущем файле: что за исполнитель, альбом, жанр, название. Такая информация хранится в тегах аудиофайла, нам нужно её извлечь от туда.
Шаг 12. Информация об аудиофайле из тегов.В конец кода кнопки cmdOpen и в cmdNext/cmdPervious нужно добавить Call GetMP3Info, чтобы вызвать эту процедуру. Параметров у неё нет - все необходимые данные находятся в глобальных переменных, например track и tracknumber. Хотя последние можно сделать локальными и передавать в качестве параметра в данную процедуру:
Код Visual Basic | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | Public Sub GetMP3Info() ' необходимо разместить ' все эти Label'ы на форму ' свойство Visible=False по-умолчанию lblStatus.Visible = True lblTitleHL.Visible = True lblArtistHL.Visible = True lblAlbumHL.Visible = True lblYearHL.Visible = True lblCommentHL.Visible = True ' необходимые переменные Dim fNum As Integer ' файл Dim sTagIdent As String * 3 ' есть ли теги? (удобнее использовать String, а не Boolean) Dim sTitle As String * 30 ' заголовок Dim sArtist As String * 30 ' исполнитель Dim sAlbum As String * 30 ' альбом Dim sYear As String * 4 ' год Dim sComment As String * 30 ' комментарий (обычно звукозаписывающая компания) fNum = FreeFile ' инициализация переменной If urlfile = True Then ' если обычный файл Open Player.url For Binary As fNum ElseIf urlfile = False Then ' если плейлист If track = "" Then Exit Sub ' если файл не существует Open track For Binary As fNum ' track - адрес текущего файла End If Seek #fNum, LOF(fNum) - 127 ' "перемотать" файл до нужной позиции ' теги начинаются с 127 строки с конца Get #fNum, , sTagIdent ' выгрузить эту строку If sTagIdent = "TAG" Then ' если там написано TAG, то в файле есть теги ' получаем их Get #fNum, , sTitle Get #fNum, , sArtist Get #fNum, , sAlbum Get #fNum, , sYear Get #fNum, , sComment End If Close #fNum ' закрыть файл ' вывести полученную информацию lblTitleHL.Caption = "Title: " & sTitle lblArtistHL.Caption = "Artist: " & sArtist lblAlbumHL.Caption = "Album: " & sAlbum lblYearHL.Caption = "Year: " & sYear lblCommentHL.Caption = "Comment: " & sComment tmrUpdate.Enabled = True End Sub |
|
Обратите ещё раз внимание, что теги в файле начинаются на 127 строке с конца (в MP3 файле, в других может быть иначе!), начинаются словом TAG. Если его нет, то нет и тегов. Подобная запись: "String * 30", означает, что максимальная длина переменной составляет 30 символов, больше не войдет. Это позволяет ограничить её на случай слишком длинного названия.
|