none
catalogar CDs, tem como assim? RRS feed

  • Pergunta

  • Pessoal,

    Tem como a programação em ASP ler um CD e catalogar sem o cliente precisar digitar?

    Tipo o programa Collectorz.com.Music.Collector.8.1

    Com Collectorz.com Music Collector catalogue seus CDs num banco de dados automaticamente. Nenhuma digitação é necessária, apenas insira seu CD no drive de CD-ROM, escaneie seu código de barras ou digite o artista ou título para ser procurado em várias fontes na Internet (como CDDB ou Amazon), incluindo artistas, títulos, nomes das faixas e capas de álbuns.

    Tem como fazer isso?

    Desde já, agradeço

    Marcelo Vinicius
    terça-feira, 22 de setembro de 2009 13:07

Todas as Respostas

  • Ninguem sabe?
    Marcelo Vinicius
    quarta-feira, 23 de setembro de 2009 14:15
  • Acredito que com ASP.Net não.
    Talvez com uma Windows App .Net...
    Asp.Net roda em um servidor e para ler arquivos no usuário tem um monte de permissões que não acredito serem aceitas por questões de segurança.


    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh
    quarta-feira, 23 de setembro de 2009 18:53
  • Olha que conseguir, não é como quero, mas não seria um passo para conseguir o que quero?

    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,Porn 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
    %>

    Marcelo Vinicius
    quinta-feira, 24 de setembro de 2009 00:04