boa noite pessoal espero que me ajudem, em minhas pesquisas achei um tutorial que tem um classe para rodar mp3 usando o jlayer.
o codigo segue abaixo:
package playermp3;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.util.ArrayList;
import javazoom.jl.player.Player;
public class MP3 {
/**
* Objeto para nosso arquivo MP3 a ser tocado
*/
private File mp3;
/**
* Objeto Player da biblioteca jLayer. Ele tocará o arquivo
* MP3
*/
private Player player;
/**
* Construtor que recebe o objeto File referenciando o arquivo
* MP3 a ser tocado e atribui ao atributo MP3 da classe.
*
* @param mp3
*/
public Player getPlayer(){
return player;
}
public void setPlayer(Player novoPlayer){
player = novoPlayer;
}
public MP3(File mp3) {
this.mp3 = mp3;
}
public MP3() {
}
/**
* Método que toca o MP3
*/
public void play() {
try {
FileInputStream fis = new FileInputStream(mp3);
BufferedInputStream bis = new BufferedInputStream(fis);
player = new Player(bis);
setPlayer(player);
System.out.println("Tocando!");
player.play();
System.out.println("Terminado!");
} catch (Exception e) {
System.out.println("Problema ao tocar " + mp3);
e.printStackTrace();
}
}
public File[] listarArquivos(String caminhoDiretorio, final String extensao) {
File F = new File(caminhoDiretorio);
File[] files = F.listFiles(new FileFilter() {
public boolean accept(File pathname) {
return pathname.getName().toLowerCase().endsWith(extensao);
}
});
return files;
}
public void tocaMusica(String novaMusica) {
//String com o caminho do arquivo MP3 a ser tocado
String path = novaMusica;
//Instanciação de um objeto File com o arquivo MP3
System.out.println(path);
File mp3File = new File(path);
//Instanciação do Objeto MP3, a qual criamos a classe.
MP3 musica = new MP3(mp3File);
//Finalmente a chamada do método que toca a música
musica.play();
}
public void tocaListaMusica(ArrayList lista){
}
}
o problema e que neses codigo so tem o metodo play eu tentei fazer muito fazer o metodo stop mais nao consegui, pelo motivo de quando inicio o metodo play o programa so permite outra chamada quando termina a musica nao sei como interroper o processo para para a musica.
Alguem sabe como fazer ou tem algum classe mais completa para eu estudar.
Agradeco desde ja se alguem poder me ajudar.