Tocador mp3 com jlayer

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.

Ola…

eu resolvi o problema com ele para de executar o programa ate terminar a musica porem eu nao consigo fazer um Stop ou Pause na mp3…

da uma olhada aqui…

http://www.guj.com.br/posts/list/125544.java#678548

se vc conseguir um stop me avise obrigado…