Reproduzindo arquivo mp3 em sua aplicação java

Olá caros leitores, essa dica visa reproduzir um arquivo mp3 em sua aplicação Java, para tornar seu aplicativo cada vez mais profissional e melhorar a interação com o usuário, de acordo com cada necessidade, é uma ótima escolha adicionar sons em botões, minimizar e maximizar janelas, notificações, entre outras opções.

principal

 

(Fonte da imagem: Reprodução/clubedosgeeks)

Passo 1: Baixe a biblioteca Jlayer e extraia o arquivo em um diretório de sua preferencia, adicione no Build Path / Libraries do seu projeto os arquivos .jar externos:

  1. vorbisspi1.0.3.jar
  2. jogg-0.0.7.jar
  3. jorbis-0.0.15.jar
  4. trironus_share.jar
  5. jl1.0.1.jar

Captura de tela de 2013-12-28 13:40:23

 

(Fonte da imagem: Reprodução/clubedosgeeks)

 

Captura de tela de 2013-12-28 13:41:18

 

(Fonte da imagem: Reprodução/clubedosgeeks)

Passo 2: Crie uma Class Jlayer e adicione o o código fonte a seguir:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javazoom.jl.player.Player;

public class JLayer {

	public static void main(String[] args) {

		// STRING COM O CAMINHO DO ARQUIVO MP3 A SER TOCADO
		String path = "res/musica.mp3";

		// INSTANCIAÇÃO DO OBJETO FILE COM O ARQUIVO MP3
		File mp3File = new File(path);

		// INSTANCIAÇÃO DO OBJETO MP3MUSICA DA CLASS INTERNA
		MP3Musica musica = new MP3Musica();
		musica.tocar(mp3File);

		// CHAMA O METODO QUE TOCA A MUSICA
		musica.start();
	}

	/**
	 * ====================================================================
	 * CLASS INTERNA MP3 MUSICA QUE EXTENDE DE THREAD PARA TRABALHAR
	 * PERFEITAMENTE NA APLICAÇÂO SEM TRAVAMENTO NA EXECUÇÃO
	 * ====================================================================
	 */
	public static class MP3Musica extends Thread {

		// OBJETO PARA O ARQUIVO MP3 A SER TOCADO
		private File mp3;

		// OBJETO PLAYER DA BIBLIOTECA JLAYER QUE TOCA O ARQUIVO MP3
		private Player player;

		/**
		 * CONSTRUTOR RECEBE O OBJETO FILE REFERECIANDO O ARQUIVO MP3 A SER
		 * TOCADO E ATRIBUI AO ATRIBUTO DA CLASS
		 *
		 * @param mp3
		 */
		public void tocar(File mp3) {
			this.mp3 = mp3;
		}

		/**
		 * ===============================================================
		 * ======================================METODO RUN QUE TOCA O MP3
		 * ===============================================================
		 */
		public void run() {
			try {
				FileInputStream fis = new FileInputStream(mp3);
				BufferedInputStream bis = new BufferedInputStream(fis);

				this.player = new Player(bis);
				System.out.println("Tocando Musica!");

				this.player.play();
				System.out.println("Terminado Musica!");

			} catch (Exception e) {
				System.out.println("Problema ao tocar Musica" + mp3);
				e.printStackTrace();
			}
		}
	}

}

Passo 3: Crie uma pasta (res) dentro do seu projeto, para armazenar os arquivos mp3 a serem tocados.

Dica: Para chamar essa class no seu código, use da seguinte forma:

Jlayer l = new Jlayer();
l.main(null);

É isso, espero que gostem e aproveitem, estudem os outro recursos que a biblioteca disponibiliza, não copiem o código, aprenda como funciona passo a passo e assim poderão fazer melhor.

 

Francisco de Assis

Servo de DEUS, Mestrando em Ciências da Computação (UFPE) Pós-Graduado em Docência do Ensino Superior (IDJ/UVA), Graduando em Automação Industrial (IFCE), Graduado em Analise e Desenvolvimento de Sistemas (UNILEÃO), casado com a mulher mais maravilhosa, Tamires Alencar e amante Python, Java, Games, Eletrônica, Robótica, Violão, Aviação...

Você pode gostar...

11 Resultados

  1. Anderson Caxeta disse:

    Boa. Fiz as modificações pro meu projeto e funcionou. Obrigado por compartilhar.

  2. Hugo Campos disse:

    Amigo, esse post foi muito útil, obrigado. Mas no meu programa eu gostaria que em determinado momento o usuário pudesse parar o mp3. Como eu faço para criar um método que o pare?

  3. Hugo Campos disse:

    Amigo, esse post foi muito útil, obrigado. Mas no meu programa eu gostaria que em determinado momento o usuário pudesse parar o mp3. Como eu faço para criar um método que o pare? Agradeço desde já.

  4. Opa! Da uma olhada nesse tópico:http://stackoverflow.com/questions/5289851/stop-mute-playing-music-using-jlayer , possível solução para seu problema, em breve estarei fazendo um post para realizar essa função de pausar a musica.

  5. Marcos disse:

    Francisco seu exemplo funciona perfeitamente. Eu estou usando aqui a BasicPlayer que também é da JavaZoom junto com essas outras aí que você esta usando e estou me batendo aqui pra deixar um mp3 dentro da aplicação com essa aí basicplayer3.0.jar quando eu uso o File para apontar o mp3 na minha pasta funciona tudo certinho a barra de progresso, eu consigo pegar o tempo decrescente, o tempo total da música, mas quando eu mudo de File para InputStream até funciona as funções play, pause e stop, mas não pega o tempo da música, nem a barra de progresso funciona direito!!! Tenho o fonte aqui e posso te mostrar…

  6. Iago disse:

    Funciona no netbeans ??

  1. 28 de abril de 2016

    […] os métodos para tocar os arquivos de áudio da aplicação. Peguei essa classe já pronta do site http://clubedosgeeks.com.br/programacao/java/reproduzindo-arquivo-mp3-em-sua-aplicacao-java de 2013 Reproduzindo arquivo mp3 em sua aplicação Java postado por Francisco De Assis muito bom […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *