Como interromper um áudio?
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
Clique aqui para fazer login e interagir na Comunidade :)