Som executar no .jar

8 respostas
ingoguilherme

eu fiz o código pra executar o som assim:

try { AudioClip clip = Applet.newAudioClip(new File("som1.wav").toURL()); clip.play(); } catch (IOException e) { e.printStackTrace(); }
ele funciona tudo certo e tals, mas somente no eclipse, quando crio um .jar ele n executa o som
preciso de uma ajudinha ae

8 Respostas

mateusviccari

voce tem que ter o som.wav na mesma pasta do .jar

nickdofeliperibeiro

Você precisa colocar a estrutura da pasta contendo o som na pasta bin.

ingoguilherme

já fiz isso e msm assim n funcionou, oq eu quero é q o som.wav fique dentro do .jar e eu consiga executa-lo igual no eclipse

como assim? n entendi direito oq vc quis dizer, dentro do .jar n há nenhuma pasta bin

quero que execute o som.wav q esta dentro do .jar, so q n esta funcionando com essas linhas de codigo q coloquei ali em cima, elas so funcionam executando o programa direito no eclipse e nao quando crio o .jar q é como to querendo fazer

RiQuInHo_

tenta fazer assim no seu projeto

InputStream somwav = this.getClass().getClassLoader().getResourceAsStream("nome_do_pacote/som1.wav");   
       AudioInputStream audioInputStream = null;   
  
       // Rotiana que faz entrada do arquivo de audio //   
       try {   
           audioInputStream = AudioSystem.getAudioInputStream(somwav);
ingoguilherme
RiQuInHo_$_$:
tenta fazer assim no seu projeto
InputStream somwav = this.getClass().getClassLoader().getResourceAsStream("nome_do_pacote/som1.wav");   
       AudioInputStream audioInputStream = null;   
  
       // Rotiana que faz entrada do arquivo de audio //   
       try {   
           audioInputStream = AudioSystem.getAudioInputStream(somwav);
InputStream somwav = this.getClass().getClassLoader().getResourceAsStream("sound/som1.wav");     
AudioInputStream audioInputStream = null;     
				  
// Rotiana que faz entrada do arquivo de audio //         
try {
    audioInputStream = AudioSystem.getAudioInputStream(somwav);
} catch (UnsupportedAudioFileException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

fiz assim e não funcionou :(
não apresenta nenhum erro nem nada na hora se executar la no eclipse, nem nada, simplesmente n executa o som
no .jar tbm n executa

ViniGodoy

Tente assim:

InputStream somwav = this.getClass().getClassLoader().getResourceAsStream("/sound/som1.wav");

E certifique-se que você tem um pacote chamado sound entre as suas classes com o .wav dentro. Não pode ser simplesmente uma pasta, pois a maior parte das IDEs não insere pastas no .jar, só pacotes. Além disso, certifique-se que as letras maiúsculas/minúsculas batem. O Windows não verifica isso, mas o .jar sim.

ingoguilherme

ViniGodoy:
Tente assim:

InputStream somwav = this.getClass().getClassLoader().getResourceAsStream("/sound/som1.wav");

E certifique-se que você tem um pacote chamado sound entre as suas classes com o .wav dentro. Não pode ser simplesmente uma pasta, pois a maior parte das IDEs não insere pastas no .jar, só pacotes. Além disso, certifique-se que as letras maiúsculas/minúsculas batem. O Windows não verifica isso, mas o .jar sim.

eu tenho o pacote Sound sim, quanto as maiusculas e minusculas esta td certo tbm, mas ele continua não lendo o som1.wav quando deveria, com o usa desse barra na frente do Sound/som1.wav ele da um erro, quando estava sem não dava o erro mas tbm n executava o som

so uma pergunta, pq o .jar n executa a linha de código que eu fiz?
essa:try { AudioClip clip = Applet.newAudioClip(new File("som1.wav").toURL()); clip.play(); } catch (IOException e) { e.printStackTrace(); }

ViniGodoy

Por que File referem-se a itens no sistema de arquivos, ou URLs no navegador. Não a conteúdos dentro de jar.

O que está dentro de jar são os resources.

Criado 31 de maio de 2012
Ultima resposta 2 de jun. de 2012
Respostas 8
Participantes 5