Russian English
   Basic.net
Среда, 23.09.2020, 02:06
Меню сайта
Категории раздела
Basic [28]
У нас вы можете бесплатно скачать QBasic, VisualBasic, FreeBasic, GW-Basic.
QBasic [4]
Visual Basic [4]
GW-Basic [0]
Игры [1]
FreeBasic [1]
PowerBasic [1]
Облако тегов
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Главная » Файлы » Basic

Делаем музыкальный плеер в Visual Basic. Часть 3.
Share |
10.07.2013, 19:28
Хочется, чтобы программа выводила информацию о текущем файле: что за исполнитель, альбом, жанр, название. Такая информация хранится в тегах аудиофайла, нам нужно её извлечь от туда.

Шаг 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 символов, больше не войдет. Это позволяет ограничить её на случай слишком длинного названия.

Категория: Basic | Добавил: Admin
Просмотров: 2039 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Наш опрос
Какую версию Basic вы предпочитаете?
Всего ответов: 2028

© Basic.ucoz.net, 2020