Galera,
Preciso de uma luz sobre como tocar som de fundo com java! Quais os formatos suportados? O que tenho que usar? Clip, AudioInputStream, etc etc? Existe algum post aqui já falando sobre isso? (procurei mas não achei).
Na verdade, além de colocar uma música de fundo gostaria tb de colocar um som quando eu clicasse num botão!
Alguem pode me dar uma luz?
Abraços!
Velho… achei isso … não sei se ajuda.
http://www.guj.com.br/posts/list/67354.java
Abraço.
Nossa! Pelo que eu estou vendo, trabalhar com audio em Java não é tão fácil (Calma! Não estou fazendo comparações com outras linguagens!). O que eu queria era só que um evento de clique disparasse um som de clique e que uma música de fundo tocasse em toda execução do meu projeto(que é um pequeno game). Mas acho que, por agora vou desistir disso. Tenho outras prioridades no meu projeto. Rsrsrsrs. Se eu for parar para estudar isso vai me atrapalhar no prazo.
Ouvi falar sobre essa API que permit inclusive tocar MP3. Voces conhecem? É bom? Algumas pessoas sugerem esta API pois se eu for usar a JMF, o cliente é forçado a ter o framework instalado na maquina. Isso procede?
Para tocar MIDI, achei esse e esse material.
Achei esse material tb:
http://support.microsoft.com/kb/179850
Mas não consegui desenvolver não! TEm que instalar DLL na máquina!
Eu resolvi o som no clique assim:
[code]public class Som {
public static AudioStream Sm(String caminho) throws Exception {
String gongFile = caminho;
InputStream in = new FileInputStream(gongFile);
AudioStream audioStream = new AudioStream(in);
return audioStream;
}
}[/code]
[code]public class ThreadSom extends Thread {
private String tipoSom;
public ThreadSom(String tipoSom) {
this.tipoSom = tipoSom;
}
@Override
public void run() {
ThreadExecutar.executarThread(this.tipoSom);
}
}[/code]
[code]public class ThreadExecutar {
public synchronized static void executarThread(String tipoSom) {
try {
AudioPlayer.player.start(Som.Sm(tipoSom));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}[/code]
E chamo assim no evento de clique:
this.clique = new ThreadSom(“data/sounds/click.wav”);
this.clique.start();
O que vcs acham?