Problemas con wav
Hola, estoy reproduciendo ficheros wav de la siguiente manera:
try
{
aff = AudioSystem.getAudioFileFormat(sf[x]);
ais = AudioSystem.getAudioInputStream(sf[x]);
cerrarAudio();
AudioFormat af=aff.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class,ais.getFormat(), ((int) ais.getFrameLength() * af.getFrameSize()));
ol = (Clip) AudioSystem.getLine(info);
Clip ol2 = ol;
ol.open(ais);
// No repetimos ninguna vez el sonido
ol.loop(0);
}
catch(UnsupportedAudioFileException ee)
{
System.out.println("UnsupportedAudioFileException");
}
catch(IOException ea)
{
System.out.println("IOException");
}
catch(LineUnavailableException LUE)
{
System.out.println("LineUnavailableException");
};
El problema es que cuando el tamaño del fichero es de mas de 1,5 Mb mas o menos me da la excepcion LineUnavailableException. ¿Alguien sabe como podrÃa reproducir ficheros wav de un tamaño mas o menos grande?.
try
{
aff = AudioSystem.getAudioFileFormat(sf[x]);
ais = AudioSystem.getAudioInputStream(sf[x]);
cerrarAudio();
AudioFormat af=aff.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class,ais.getFormat(), ((int) ais.getFrameLength() * af.getFrameSize()));
ol = (Clip) AudioSystem.getLine(info);
Clip ol2 = ol;
ol.open(ais);
// No repetimos ninguna vez el sonido
ol.loop(0);
}
catch(UnsupportedAudioFileException ee)
{
System.out.println("UnsupportedAudioFileException");
}
catch(IOException ea)
{
System.out.println("IOException");
}
catch(LineUnavailableException LUE)
{
System.out.println("LineUnavailableException");
};
El problema es que cuando el tamaño del fichero es de mas de 1,5 Mb mas o menos me da la excepcion LineUnavailableException. ¿Alguien sabe como podrÃa reproducir ficheros wav de un tamaño mas o menos grande?.
Yo no lo he intentado, pero se me ocurre es que no intenten cargar todo el wav de golpe, sino, cacho cacho con un hilo si es necesario para ke no hayan saltos. Es como al reproducir una pelicula, no la cargas toda en memoria, sino que vas leyendola poco a poco.
