Fórum Como interromper um áudio? #517167
17/04/2015
0
Consegui reproduzir um áudio assim:
E a classe
Agora preciso saber como parar e pausar o áudio.
percebi que durante a reprodução a aplicação fica toda travada impedino o acionamento de outro botao e até o fechamento da aplicação.
package audio;
import java.awt.Button;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
public class Principal extends JFrame implements MouseListener{
Button btnPlay, btnStop, btnPause;
Audio mp3p;
public Principal() {
super("Janela");
setSize(400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(null);
btnPlay = new Button("Play");
btnPlay.setBounds(10, 10, 80, 30);
add(btnPlay);
btnStop = new Button("Stop");
btnStop.setBounds(10, 50, 80, 30);
add(btnStop);
btnPause = new Button("Pause");
btnPause.setBounds(10, 90, 80, 30);
add(btnPause);
btnPlay.addMouseListener(this);
btnStop.addMouseListener(this);
btnPause.addMouseListener(this);
}
public static void main(String[] args) {
new Principal().setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource()==btnPlay){
System.out.println("Clicou play");
mp3p = new Audio("C:\\Users\\Usu�rio\\Documents\\NetBeansProjects\\Audio2\\src\\audios\\who_knew.mp3");
mp3p.play();
}
else if(e.getSource()==btnStop){
System.out.println("Clicou stop");
}
else if(e.getSource()==btnPause){
System.out.println("Clicou pause");
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
}
E a classe
package audio;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
public class Audio {
File file;
FileInputStream fis;
BufferedInputStream bis;
Player player;
public Audio(String url) {
try{
file = new File(url);
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
play();
}catch(IOException e){}
}
public void play(){
try{
player = new Player(bis);
player.play();
}catch(JavaLayerException ex){}
}
public void stop(){
player.close();
}
}
Agora preciso saber como parar e pausar o áudio.
percebi que durante a reprodução a aplicação fica toda travada impedino o acionamento de outro botao e até o fechamento da aplicação.
Reinilton
Curtir tópico
+ 0
Responder
Posts
21/04/2015
Ronaldo Lanhellas
Você precisa trabalhar com Threads, ou seja, criar uma Thread separada para executar o áudio, assim a sua aplicação não ficará travada.
Segue:https://www.devmedia.com.br/trabalhando-com-threads-em-java/28780
Segue:https://www.devmedia.com.br/trabalhando-com-threads-em-java/28780
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)