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...

11 thoughts on “Reproduzindo arquivo mp3 em sua aplicação java

  1. 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?

  2. 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á.

  3. 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…

Deixe um comentário

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


Deprecated: Creation of dynamic property Daisy_Blog_Google_Local::$files is deprecated in /home2/clube692/public_html/wp-content/themes/daisy-blog/inc/blocks/font-family/inc/class-fonts-google-local.php on line 77

Deprecated: Creation of dynamic property Daisy_Blog_Google_Local::$files is deprecated in /home2/clube692/public_html/wp-content/themes/daisy-blog/inc/blocks/font-family/inc/class-fonts-google-local.php on line 77