Bom dia, pessoal!!!
Eu construi um pequeno player que execute áudio no formato .mp3, no qual ele possui três botões em sua interface. São eles:
selecionar áudio : abri os diretórios do computador para selecionar o áudio desejado, que está funcionando perfeitamente. Eu armazeno o caminho deste áudio selecionado em um arquivo.
[code] public void incluirEnderecoAudio() throws FileNotFoundException, IOException {
URL mediaURL = null;
JFileChooser fileChooser = new JFileChooser();
File Arquivo = fileChooser.getSelectedFile();
int result = fileChooser.showDialog(null, "ARQUIVOS");
if (result == JFileChooser.APPROVE_OPTION) // user chose a file
{
// Obtém o arquivo selecionado
// uma chamada à arquivo.getName() retornará o nome do arquivo
Arquivo = fileChooser.getSelectedFile();
try {
mediaURL = fileChooser.getSelectedFile().toString();
} // end try
catch (Exception e) {
System.err.println("Could not create URL for the file");
}
}
}[/code]
botão play: executar o áudio. Eu vejo se este botão foi pressionado através de uma veriável booleana dentro do seu evento, e se sim, eu chamo a função teste(). :
[code]public void teste() {
try {
ArquivoPlayer arquivoPlayer = new ArquivoPlayer();
arquivoPlayer.abrirDoDisco();
for (Play playVariavel : ArquivoPlayer.getPlays()) {
String path = playVariavel.getMediaURL().toString();
//Instanciação de um objeto File com o arquivo MP3
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();
}
} catch (Exception e) {
}
}
}
[/code]
[code]import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
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 MP3(File mp3) {
this.mp3 = mp3;
}
/** * Método que toca o MP3 */
public void play() {
try {
FileInputStream fis = new FileInputStream(mp3);
BufferedInputStream bis = new BufferedInputStream(fis);
this.player = new Player(bis);
System.out.println("Tocando!");
this.player.play();
System.out.println("Terminado!");
}
catch (Exception e) {
System.out.println("Problema ao tocar " + mp3);
}
}
[/code]
O último botão é o stop: que deve para o áudio, porém não sei realizar esta funcionalidade. Alguém poderia me dar uma ajuda? Estou utilizando a lib jl1.0.1.jar, própria para a execuçao de audio no formato .mp3. Tem algum método stop() nesta biblioteca? Ou alguém tem alguma sugestão para eu parar a execuçao de audio?
Desde já, muito obrigada!!!