powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Читаем TAG в MP3
2 сообщений из 2, страница 1 из 1
Читаем TAG в MP3
    #35884319
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для VB так толком и не нашол нужной библиотеки чтоб читать TAG, поэтому все пришлось делать ручками :)
Вот код для чтения TAG1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Public Function P_Tag1(VhPath As String, Pl_Title As String, Pl_Artist As String, P_lAlbum As String, Pl_Year As String, Pl_Comment As String, Pl_Janr As String) As Boolean
 Dim L As Long
 Dim s As String
 MPos =  1 
  L = FileLen(VhPath)
  If L <  300  Then Exit Function
 Open VhPath For Binary As # 55 
  s = "   ": Get # 55 , L -  127 , s
  If s <> "TAG" Then Close  55 : Exit Function
   s = Space( 30 ): Get # 55 , L -  124 , s: Pl_Title = Trim(s)
   s = Space( 30 ): Get # 55 , L -  94 , s: Pl_Artist = Trim(s)
   s = Space( 30 ): Get # 55 , L -  64 , s: P_lAlbum = Trim(s)
   s = Space( 4 ): Get # 55 , L -  34 , s: Pl_Year = Trim(s)
   s = Space( 30 ): Get # 55 , L -  30 , s: Pl_Comment = Trim(s)
   s = Space( 1 ): Get # 55 , L, s: Pl_Janr = Trim(s)
  Close # 55 
  P_Tag1 = True
End Function
с уважением Андрей
...
Рейтинг: 0 / 0
Читаем TAG в MP3
    #35884395
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот код написан мной для чтения TAG2
Сдесь читаются только основные метки, но на самом деле меток может быть на много больше (текст песен, BPM и др.) и по этому не даю гарантию что код надежный на все 100% (без ошибок на все случаи жизни). Также не пробовал програмно впаять свой тег в трек без тега. Если кто сможет, прошу выложить код.
Код: plaintext
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.
50.
51.
52.
53.
54.
55.
Public Function P_Tag2(VhShlah As String, PlTitle As String, PlArtist As String, PlAlbum As String, PlYear As String, PlComment As String, PlJanr As String, PlTrack As String, PlComposer As String, PlOrigArtist As String, PlCopyright As String, PlEncoder As String, PlURL As String) As Boolean
Dim L As Long
Dim S As String
Dim MPos As Long
Dim TmpS As String
Dim TmpS_2 As String
Dim n As Long
Dim TmpZ As String
Dim TmpL As Long
Dim TypTag As Boolean
 L = FileLen(VhShlah)
Open VhShlah For Binary As # 55 
 S = "   "
 Get # 55 ,  1 , S
 MPos =  1 
  If S = "ID3" Then S = Space( 4086 ): Get # 55 ,  11 , S: Close  55  Else Close  55 : Exit Function
Do While True
  TmpS = Mid(S, MPos,  4 )
  Tm1 = Asc(Mid(S, MPos +  6 ,  1 ))
  If Tm1 >  10  Then Exit Do
  TmpL = ( 256  * Tm1) + Asc(Mid(S, MPos +  7 ,  1 ))
  TmpZ = Mid(S, MPos +  10 , TmpL)
  TypTag = False
  
  If Left(TmpZ,  1 ) = Chr( 0 ) Then TypTag = True
   TmpZ = Replace(TmpZ, Chr( 0 ), Chr( 32 ), , , vbBinaryCompare)
  If Left(TmpZ,  1 ) = Chr( 1 ) Then
    TmpS_2 = ""
    For n = InStr(TmpZ, Chr( 255 ) + Chr( 254 )) +  2  To Len(TmpZ) Step  2 
     If n +  1  <= Len(TmpZ) Then
     TmpS_2 = TmpS_2 + VznatiSimvol(Asc(Mid(TmpZ, n,  1 )), Asc(Mid(TmpZ, n +  1 ,  1 )))
     End If
    Next
    TmpZ = TmpS_2
    TypTag = True
  End If
   If TypTag = False Then Exit Function
   MPos = MPos + TmpL +  10 
   Select Case TmpS
    Case "TENC": PlEncoder = Trim(TmpZ)
    Case "WXXX": PlURL = Trim(TmpZ)
    Case "TCOP": PlCopyright = Trim(TmpZ)
    Case "TOPE": PlOrigArtist = Trim(TmpZ)
    Case "TCOM": PlComposer = Trim(TmpZ)
    Case "TIT2": PlTitle = Trim(TmpZ)
    Case "COMM": PlComposer = Trim(TmpZ)
    Case "TALB": PlAlbum = Trim(TmpZ)
    Case "TYER": PlYear = Trim(TmpZ)
    Case "TCON": PlJanr = Trim(TmpZ)
    Case "TRCK": PlTrack = Trim(TmpZ)
    Case "TPE1", "TPE2": PlArtist = Trim(TmpZ)
    Case Else
     Debug.Print "Невідома мітка: " + TmpS
   End Select
 Loop
End Function

С уважением Андрей
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Читаем TAG в MP3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]