Java - Reproducir WAV dentro del .jar

 
Vista:

Reproducir WAV dentro del .jar

Publicado por Enric (2 intervenciones) el 17/10/2011 18:58:31
Resulta que estoy montando una pequeña aplicación de Java con Netbeans.
Lo que necesito es reproducir sonidos .wav que se incorporan dentro del .jar.
La cuestion, es que no quiero utilizar librerias externas, ni archivos sonidos externos, ya que si voy con mi .JAR a la oficina, a casa, etc...solo necesite el .JAR para escuchar los sonidos.

Me he creado una carpeta "Sonidos" dentro de "src" y alli tengo mis sonidos. (Proyecto/src/sonidos). Es la manera de incorporar ficheros a un JAR,no?? Con independencia de esos ficheros...
En el momento de reproducir el sonido hago lo siguiente:

1
2
3
4
Clip sonido = AudioSystem.getClip();
            File f = new File(getClass().getResource(/Sonidos/alarma.wav).toURI());
            sonido.open(AudioSystem.getAudioInputStream(f));
            sonido.start();



Resulta que si ejecuto el programa con el netbeans, me reproduce los sonidos, pero a la que traslado solamente mi .JAR a otro ordenador, no se reproduce...

Alguna idea?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reproducir WAV dentro del .jar

Publicado por Enric (2 intervenciones) el 19/10/2011 19:38:32
Problema solucionado.
El codigo correcto para que funcione es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
InputStream path;
path = getClass().getResourceAsStream("/Sonidos/alarma.wav");
 
try
{
   Clip sonido = AudioSystem.getClip();
   sonido.open(AudioSystem.getAudioInputStream(path));
   sonido.start();
 
}
catch(Exception fallo)
{
    System.out.println(fallo);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Reproducir WAV dentro del .jar

Publicado por Fernando (1 intervención) el 19/03/2014 17:32:14
en la direccion dle archivo de audio esta el error... deberia ser algo asi como ../sonidos/alarma.wav
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reproducir WAV dentro del .jar

Publicado por Kailcor (1 intervención) el 02/08/2015 02:10:25
Hola amigos, como dice el amigo arriba ciertamente ese es el código que funciona
¿Pero por que?

Yo tenia este código, que me funcionaba con archivos midi, pero no con los wav (aunque en el netbeans reproduce los dos),. Cuando lo exportaba al Jar dejaba de escucharse, y si descomprimia el jar y ejecutaba desde la consola de comandas con el comando java , ahí si me funcionaba. ¿Por que este código no funciona con los wav compresos en un jar?
¿Será que la compresion altera de alguna forma el formato???


MI Código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
try {
//			
//			AudioInputStream ais =
//				AudioSystem.getAudioInputStream(
//					getClass().getResourceAsStream(s)
//				); //Obtiene el archivo de audio y lo transforma a un flujo de bits 
//			AudioFormat baseFormat = ais.getFormat();//codifica el flujo de bits a un formato
//			AudioFormat decodeFormat = new AudioFormat(
//				AudioFormat.Encoding.PCM_SIGNED,//determina el tipo de PCM
//				baseFormat.getSampleRate(),//Obtiene el rate de la muestra
//				16,
//				baseFormat.getChannels(),//Canales de audio
//				baseFormat.getChannels() * 2,//Canales de audio
//				baseFormat.getSampleRate(),
//				false
//			);
//			AudioInputStream dais =
//				AudioSystem.getAudioInputStream(
//					decodeFormat, ais);//Decodifica finalmente el audio para manejarlo
//                        
//			clip = AudioSystem.getClip();//obtiene un clip para almacenar y reproducir el audio
//			clip.open(dais);//abre el archivo de audio.
//		}
//		catch(Exception e) {
//			e.printStackTrace();
//		}

A tu código le agregue lo siguiente, para usar un String en vez de un FIle.

1
clip.open(AudioSystem.getAudioInputStream(getClass().getResource(s)));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rosalía
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Reproducir WAV dentro del .jar

Publicado por Rosalía (3 intervenciones) el 04/06/2019 23:22:00
1
2
3
4
5
6
7
8
9
10
11
12
13
public Clip clip;
public String ruta="/tracks/";
 
public void instrucciones (String archivo)
{
    try{
        clip = AudioSystem.getClip();
        clip.open(AudioSystem.getAudioInputStream(getClass().getResourceAsStream(ruta+archivo+".wav")));
        clip.start();
    }catch(IOException | LineUnavailableException | UnsupportedAudioFileException e){
 
    }
}


Lo tengo así el código, en netbeans funciona pero en archivo .jar no, podrían ayudarme porfavor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Reproducir WAV dentro del .jar

Publicado por Yamil Bracho (2315 intervenciones) el 04/06/2019 23:32:32
Estas ignorando las excepciones asi que mejor imprimela para ver que esta pasando

catch(IOException | LineUnavailableException | UnsupportedAudioFileException e){
System.err.println(ex)
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rosalía
Val: 8
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Reproducir WAV dentro del .jar

Publicado por Rosalía (3 intervenciones) el 05/06/2019 00:03:58
lo intenté pero sigue sin funcionar, pero muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reproducir WAV dentro del .jar

Publicado por Blue (2 intervenciones) el 27/11/2019 00:31:03
1
2
3
4
5
6
try {
    Clip sonido = AudioSystem.getClip();
    sonido.open(AudioSystem.getAudioInputStream( new File("C:/Users/Blue/Documents/NetBeansProjects/Proyecto/src/TUaudio.wav")));
    sonido.start();
} catch (Exception e) {
}
Al parecer esto ocurre con archivos de mucha duracion pues con los cortos no he tenido problemas.
La solucion es ponerlo de esta manera que puse arriba, colocando la ruta absoluta de tu archivo.
al menos eso me ha funcionado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reproducir WAV dentro del .jar

Publicado por Blue (2 intervenciones) el 27/11/2019 00:33:36

Un link que puede ser de utilidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar