Botao que toca musica

3 respostas
J

Com posso fazer um botao que toque uma musica?
Já criei o botao “Tocar”, criei um metodo play e um run…mas como faço pra uma variavel receber a musica?

Tem como fazer musica.play() ? Vai funcionar?

3 Respostas

rafaelglauber

veja se esse exemplo te ajuda.

J
Rafael fiz o seguinte código mais ainda ta um lixo porque estou aprendendo java

[/code] import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.<em>;

import java.util.</em>;

import javax.sound.midi.*;

import java.io.File;
public class MeuSom extends JFrame implements Runnable, ActionListener{

Thread runner;

String songFile;

String song;

Sequence currentSound;

Sequencer player;

JButton tocar = new JButton(Iniciar);

JButton parar= new JButton(Stop);
public MeuSom(){
super("Meu som! ");
setSize(200,200);
songFile=song;

//Sequence seq = MidiSystem.getSequence(file);
//song= getAudioClip( "train.wav");
tocar.addActionListener(this);
parar.addActionListener(this);
JPanel pane =new JPanel();
GridLayout  grid = new GridLayout(2,1,20,20);
pane.setLayout(grid);
pane.add(tocar);
pane.add(parar);
setContentPane(pane);
show();
}
public static void main(String[] arguments){

MeuSom som = new MeuSom();

}
void play(){

if (runner ==null)

runner = new Thread(this);

runner.start();

}

public void run(){

try{

File song = new File(songFile);

currentSound = MidiSystem.getSequence(song);

player= MidiSystem.getSequencer();

}catch(Exception ex) {}

Thread thisThread = Thread.currentThread();

while(runner ==thisThread){

try{

player.open();

player.setSequence(currentSound);

<a href="//player.setTempoFactor">//player.setTempoFactor</a>(tempo);

player.start();

<a href="//message.setText">//message.setText</a>(“Playing " + songFile + “at”+ tempo + “tempo”);

while(player.isRunning() && runner !=null) {

try{

Thread.sleep(1000);

}catch (InterruptedException e){}

}

<a href="//message.setText">//message.setText</a>(”");

player.close();

}catch(Exception ex) {

<a href="//message.setText">//message.setText</a>(ex.toString());

break;

}

}	

}

public void actionPerformed(ActionEvent evt){

if (evt.getSource() instanceof JButton){

if(evt.getSource()==tocar)

play();

}

}

}

[quote]
rafaelglauber

Ajeita ai a tag CODE para ficar legível o código…o exemplo serviu? não saco nada de jse, estudo jee, achei esse exemplo um tempo atrás que tava testando algumas coisas… :smiley:

ps. inicialmente o importante é compilar, depois é rodar, depois testar, e por fim produzir um código refatorado e bonito!!! :lol:

Criado 3 de janeiro de 2008
Ultima resposta 3 de jan. de 2008
Respostas 3
Participantes 2