Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jrcardozo

Leitor de Tags MP3

Recommended Posts

Mantenham os créditos do autor http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Neste código foi desenvolvido uma Classe chamada MP3ID3 que é responsável por fazer uma leitura das Tags ID3v1 e ID3v1.1 de um arquivo MP3 e armazenar os dados encontrados nas propriedades do objeto.

Desta forma basta passar o caminho completo do arquivo MP3 para o método readID3Tags que ele fará todo o trabalho. Depois de realizada a leitura basta utilizar as propriedades:

- Arquivo

- Titulo

- Artista

- Album

- Ano

- Comentario

- Trilha

- Genero

- TAG

ASP
<%

'================================================================================

=========

' I D 3   T A G   R E A D E R  (ID3v1 e ID3v1.1)

' Autor: Gabriel Fróes (www.codigofonte.com.br)

' Data: 17/07/2006

' Versão: 1.0

'================================================================================

=========

 

'*******************************************************

'CLASSE RESPONSÁVEL PELA LEITURA DAS TAGS ID3 NO MP3

'*******************************************************

Class MP3ID3

 '-----------------------------------------------------

 'ATRIBUTOS DA CLASSE

 '-----------------------------------------------------

 Private a_Tamanho

 Private a_Arquivo

 Private a_Titulo

 Private a_Artista

 Private a_Album

 Private a_Ano

 Private a_Comentario

 Private a_Trilha

 Private a_Genero

 Private a_TAG

 'Objetos

 Private objFSO

 Private objMP3

 'Array com os Gêneros

 Private arrGeneros

 

 '-----------------------------------------------------

 'PROPRIEDADES DA CLASSE

 '-----------------------------------------------------

 Public Property Get Tamanho

  Tamanho = a_Tamanho

 End Property

 Public Property Get Arquivo

  Arquivo = a_Arquivo

 End Property

 Public Property Get Titulo

  Titulo = a_Titulo

 End Property

 Public Property Get Artista

  Artista = a_Artista

 End Property

 Public Property Get Album

  Album = a_Album

 End Property

 Public Property Get Ano

  Ano = a_Ano

 End Property

 Public Property Get Comentario

  Comentario = a_Comentario

 End Property

 Public Property Get Trilha

  Trilha = a_Trilha

 End Property

 Public Property Get Genero

  Genero = a_Genero

 End Property

 Public Property Get TAG

  TAG = a_TAG

 End Property

 

 '-----------------------------------------------------

 'Procedimentos de Inicialização de Destruição da Classe

 '-----------------------------------------------------

 Private Sub Class_Initialize()

  'Criação dos Objetos

  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

  Set objMP3 = Server.CreateObject("ADODB.Stream")  

  objMP3.Type = 1 'adTypeBinary

  arrGeneros = Split("Blues,Classic Rock,Country,Dance,Disco,Funk,Grunge,Hip-Hop,Jazz,Metal,New Age,Oldies,Other,Pop,R&B,Rap,Reggae,Rock,Techno,Industrial,Alternative,Ska,Death Metal,Pranks,Soundtrack,Euro-Techno,Ambient,Trip-Hop,Vocal,Jazz+Funk,Fusion,Trance,Classical,Instrumental,Acid,House,Game,Sound Clip,Gospel,Noise,Altern Rock,Bass,Soul,Punk,Space,Meditative,Instrumental Pop,Instrumental Rock,Ethnic,Gothic,Darkwave,Techno-Industrial,Electronic,Pop-Folk,Eurodance,Dream,Southern Rock,Comedy,Cult,Gangsta,Top 40,Christian Rap,Pop/Funk,Jungle,Native American,Cabaret,New Wave,Psychadelic,Rave,Showtunes,Trailer,Lo-Fi,Tribal,Acid Punk,Acid Jazz,Polka,Retro,Musical,Rock & Roll,Hard Rock,Folk,Folk/Rock,National Folk,Swing,Bebob,Latin,Revival,Celtic,Bluegrass,Avantgarde,Gothic Rock,Progressive Rock,Psychedelic Rock,Symphonic Rock,Slow Rock,Big Band,Chorus,Easy Listening,Acoustic,Humor,Speech,Chanson,Opera,Chamber Music,Sonata,Symphony,Booty Bass,Primus,--- Groove,Satire,Slow Jam,Club,Tango,Samba,Folclore", ",")

 End Sub

 Private Sub Class_Terminate()

  'Destruição dos Objetos

  Set objMP3 = Nothing

  Set objFSO = Nothing

 End Sub

 

 '-----------------------------------------------------

 'MÉTODOS DA CLASSE

 '-----------------------------------------------------

 '-----------------------------------------------------

 'Funcao: readID3Tags(ByVal CaminhoMP3)

 'Sinopse: Realizar a leitura do MP3 e extrai as TAGS ID3

 '    e preenche as propriedades

 'Parametro:

 '       CaminhoMP3: Caminho Virtual do arquivo MP3

 'Retorno: Booleano

 '-----------------------------------------------------

 Function readID3Tags(ByVal CaminhoMP3)

  'Declaração

  Dim Retorno

  Dim GeneroID

  Dim tmpComentario

 

  'Inicialização

  Retorno  = False

  a_Tamanho = ""

  a_Arquivo = ""

  a_Titulo = ""

  a_Artista = ""

  a_Album  = ""

  a_Ano  = ""

  a_Comentario= ""

  a_Trilha = ""

  a_Genero = ""

  a_TAG  = ""

 

  'Abrindo o arquivo MP3

  objMP3.Open

  objMP3.LoadFromFile CaminhoMP3

  objMP3.Position = objMP3.Size - 128

 

  'Verificando se o arquivo possui TAG

  If UCase(converteBinario(objMP3.Read(3))) = "TAG" Then

   'TAMANHO

   a_Tamanho  = Round((objMP3.Size/1024)/1024,2) & " MB"

   'ARQUIVO

   a_Arquivo  = objFSO.GetFileName(CaminhoMP3)

   'TITULO

   a_Titulo  = converteBinario(objMP3.Read(30))

   'ARTISTA

   a_Artista  = converteBinario(objMP3.Read(30))

   'ALBUM

   a_Album   = converteBinario(objMP3.Read(30))

   'ANO

   a_Ano   = converteBinario(objMP3.Read(4))

   'COMENTARIO

   tmpComentario = objMP3.Read(30)

   'TAG

   If AscB(MidB(tmpComentario, 29, 1)) = 0 And AscB(MidB(tmpComentario, 30, 1)) > 0 And AscB(MidB(tmpComentario, 30, 1)) < 256 Then

    a_Tag = "ID3v1.1"

    'COMENTARIO (v1.1)

    a_Comentario = converteBinario(LeftB(a_Comentario, 28))

    'TRILHA

    a_Trilha = AscB(MidB(tmpComentario, 30, 1))

   Else

    a_Tag   = "ID3v1"

    a_Comentario = tmpComentario

   End If

   'GENERO

   GeneroID = AscB(objMP3.Read(1))

   If GeneroID <= 114 AND GeneroID >= 0 Then

    a_Genero = arrGeneros(GeneroID)

   End If

   Retorno = True

  End If

  objMP3.Close

 

  'Retornando a função

  readID3Tags = Retorno

 End Function

 

 '-----------------------------------------------------

 'Funcao: converteBinario(ByVal Bin)

 'Sinopse: Converte o Valor Binário passado.

 'Parametro:

 '       Bin: Valor em Binário

 'Retorno: String

 '-----------------------------------------------------

 Private Function converteBinario(ByVal Bin)

  Dim Aux

  For Aux = 1 To LenB(Bin)

   If AscB(MidB(Bin, Aux, 1)) <> 0 Then converteBinario = converteBinario & Chr(AscB(MidB(Bin, Aux, 1)))

  Next

 End Function

End Class

 

'EXEMPLO DE CHAMADA

Dim objID3

Set objID3 = New MP3ID3

If objID3.readID3Tags("D:GabrielMinhas músicasKiss From a Rose.mp3") = True Then

 Response.Write "<h1>" & objID3.Arquivo & "</h1>"

 Response.Write "Artista: " & objID3.Artista & "<br>"

 Response.Write "Titulo: " & objID3.Titulo & "<br>"

 Response.Write "Tamanho: " & objID3.Tamanho & "<br>"

 Response.Write "TAG: " & objID3.TAG & "<br>"

 Response.Write "Genero: " & objID3.Genero & "<br>"

 Response.Write "Album: " & objID3.Album & "<br>"

 Response.Write "Ano: " & objID3.Ano & "<br>"

 Response.Write "Trilha: " & objID3.Trilha & "<br>"

Else

 Response.Write "Não foi possível ler o arquivo MP3."

End If

 

If objID3.readID3Tags("D:GabrielMinhas músicasSeal - Kiss from a rose (unplugged & acoustic session).mp3") = True Then

 Response.Write "<h1>" & objID3.Arquivo & "</h1>"

 Response.Write "Artista: " & objID3.Artista & "<br>"

 Response.Write "Titulo: " & objID3.Titulo & "<br>"

 Response.Write "Tamanho: " & objID3.Tamanho & "<br>"

 Response.Write "TAG: " & objID3.TAG & "<br>"

 Response.Write "Genero: " & objID3.Genero & "<br>"

 Response.Write "Album: " & objID3.Album & "<br>"

 Response.Write "Ano: " & objID3.Ano & "<br>"

 Response.Write "Trilha: " & objID3.Trilha & "<br>"

Else

 Response.Write "Não foi possível ler o arquivo MP3."

End If

Set objID3 = Nothing

%>

 

FONTE: http://www.codigofonte.com.br/codigo/asp/d...d3v11-em-um-mp3

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.