Esta semana, ao iniciar um projeto para minha faculdade, percebi que seria necessário trabalhar com arquivos de música, ou seja, com a classe JAVA Sound. Infelizmente esta classe apenas possuí suporte para arquivos MIDI e WAV
(Não tenho absoluta certeza sobre esta informação), que são formatos de arquivos pouco compactos...
Para se ter um idéia um arquivo de áudio de 3 minutos e 32 segundos em WAV tem 35,7mb (128Kbps Stereo), enquanto um Mp3 (128Kbps, Stereo) tem apenas 4,86Mb e um OGG (128kbps, Stereo) tem meros 1,08Mb... a diferença é logo notada.
Assim sendo, procurei na internet uma API que pudesse tocar arquivos de áudio com extensões como OGG e MP3. Felizmente, achei as APIs, totalmente FREE!
São dois Pacotes diferentes... Segue abaixo o nome, e o link para baixar cada uma:
MP3 SPI:Tamanho: 348KB
Formato: .zip
Versão: 1.9.4
Download:
Clique AquiSite:
http://www.javazoom.net/mp3spi/mp3spi.htmlOgg Vorbis SPI:Tamanho: 262KB
Formato: .zip
Versão: 1.0.2
Download:
Clique aquiSite:
http://www.javazoom.net/vorbisspi/vorbisspi.html
*Toda a documentação e exemplos podem ser encontradas no site. Separei por PASSOS o meu Tutorial, então para quem tiver interesse, basta seguir os passos:
Passo 1:Estou trabalhando com o eclipse "Europa" ou versão 3.3.0. Ele esta rodando em "C:\eclipse", para obter o eclipse ou um versão mais recente basta clicar
aqui;
Passo 2:Baixe os pacotes com os links acima ("Ogg Vorbis SPI" e "MP3 SPI"), extrai o seu conteúdo em na diretório "C:\eclipse\Extras". A pasta extra você deverá cria-lá, sendo assim para acessar os pacotes dos "SPIs" você tera algo parecido com isso:
"C:\eclipse\Extras\VorbisSPI1.0.2" e "C:\eclipse\Extras\C:\eclipse\Extras\MpegAudioSPI1.9.4";
Passo 3:Abra seu Eclipse, selecione sua área de trabalha e na aba "WORKSPACE" (No Eclipse) vá em um projeto já existente (ou crie um novo projeto).
Passo 4:Na pasta do projeto, clique o botão direito do mouse, e vá em "BUILD PATH" e depois em "Configure Build Path". Abrirá uma nova janela, vá na aba "Libraries", você verá 5 botões , clique em "Add External JARs";
Passo 5:OGG VORBIS -
Agora abrirá a janela de navegação de pastas. Vá na pasta "C:\eclipse\Extras\VorbisSPI1.0.2", selecione o arquivo "vorbisspi1.0.2.jar" e mande abrir. Logo após add, clique novamente em "Add External JARs" e vá na pasta "C:\eclipse\Extras\VorbisSPI1.0.2\lib". Selecione os três arquivos .JAR existentes na pasta. ("jogg-0.0.7.jar", "jorbis-0.0.15.jar", "tritonus_share.jar") e mande abri-los. Após isso o pacote para tocar músicas/sons com extensão ".OGG" estará funcionando corretamente. (Na verdade ainda falta a implementação da Classe que está mais abaixo);
Passo 6:MP3 -
A mesma idéia será usada para poder tocar músicas MP3 no JAVA. Clique em "Add External JARs" e vá no diretório "C:\eclipse\Extras\MpegAudioSPI1.9.4". Selecione o arquivo "mp3spi1.9.4.jar" e mande-o abrir, após isso clique mais uma ultima vez em "Add External JARs", vá no diretório "C:\eclipse\Extras\MpegAudioSPI1.9.4\lib" e selecione os arquivos lá encontrados ("jl1.0.jar" e "tritonus_share.jar");
Passo 7:Após seguir todos os passos, você poderá executar arquivos nos formatos ".OGG" e ".MP3". Extremamente fácil utilizar. Precisamos agora da Classe para tocar as músicas e obter informação sobre as mesmas.
Passo 8:Baixe a classe "Musica" e importe para seu projeto, ou copie o código fonte. A fonte incluí um exemplo simples com uma classe MAIN e a classe "Musica" necessária para tocar a música.
Classe "Musica":Tamanho: 6Kb;
Formato: RAR;
Download:
Clique aquiDados da Classe "Musica"
Construtor:Musica(String Musica);-> Passar parâmetro de endereço do diretório da música, completo. (Exemplo: "C:\Músicas\Black Label Society - Hell Is High.mp3");
Métodos:
Play() ;-> Tipo VOID;
Stop();
-> Ainda não desenvolvi esta implementação....
getNomeMusica();-> Tipo String. Obtém o nome da música no formato "Artista - Titulo da Música". (Exemplo: "Black Label Society - Hell Is High");
getExtensao();-> Tipo String. Retorna a extensão do arquivo que está sendo tocado; (Exemplo: "MP3");
getQualidade();-> Tipo String. Retorno a qualidade de áudio no formato: "XXX Kbps | XX Khz". (Exemplo: "192 Kbps | 44 Khz");
setMusica(String Musica);-> Parecido com o método construtor, mas ele tocará automaticamente a música que for passada por parâmetro;
Os métodos são poucos, mas para meu projeto são mais que suficiente. Se precisarem de ajuda para implementar algo, ou para usar a Classe e etc... só mandarem suas dúvidas aqui!
Abraços a todos!