despues de mucho bregar, encontré una librería(BasicPlayer) que me facilita mucho las cosas pero ahora el problema es la demora en la reproducción:
codigo java:
Código PHP:
import Gui.MarcoPrincipal;
import java.io.File;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javazoom.jlgui.basicplayer.BasicPlayer;
import javazoom.jlgui.basicplayer.BasicPlayerException;
public class ReproduceSonido {
private boolean sonido;
private String directorio;
private BasicPlayer player;
private File[] vAudios;
public ReproduceSonido(){
sonido=true;
vAudios=new File[7];
String carpetaAudio;
if(MarcoPrincipal.getSo().equals("Linux")){
carpetaAudio="/Audio/";
}else{
carpetaAudio=String.valueOf((char)(92))+"Audio"+String.valueOf((char)(92));
}
directorio=MarcoPrincipal.getDirectorioAplicacion()+carpetaAudio;
vAudios[0]=new File(this.directorio+"Acierto.wav");
vAudios[1]=new File(this.directorio+"Error.wav");
vAudios[2]=new File(this.directorio+"Introduccion.wav");
vAudios[3]=new File(this.directorio+"PulsaBoton.wav");
vAudios[4]=new File(this.directorio+"Contestarprimero.wav");
vAudios[5]=new File(this.directorio+"Inicioprueba.wav");
vAudios[6]=new File(this.directorio+"Pocotiempo.wav");
}
public boolean isSonido() {
return sonido;
}
public void setSonido(boolean sonido) {
this.sonido = sonido;
}
public void start(int indice){
if (sonido) {
player = new BasicPlayer();
try {
player.open(this.vAudios[indice]);
player.play();
} catch (BasicPlayerException ex) { }
}
}
}
En el programa que utiliza esta clase, solo crea una instancia de esta clase, y entonces esta se encarga de cargar en un vector de objetos “File” los 7 audios que utilizo. La clase BasicPlayer crea un hilo para cada audio cade vez que llamo a start(int indice).
El problema es que se demora un segundo en reproducir y teniendo en cuenta que uno de los audios es para cada vez que se haga clip en un JButton necesito que el audio sea casi instantáneo.
Pensé que la demora de un segundo se presentaba por tener que cargar los archivos en objetos “File”, por eso inicializo todo eso en el constructor, pero no es así, todavía se presenta esta demora...
agradezco sus recomendaciones y aportes...
PD: En otros intentos de crear una clase Audio, utilizando la clase Clip ,siempre tuve el inconveniente de que no reproduce todas las veces.