public static AudioClip reproducirSonido(String archivo) {
    AudioClip sonido = MotorSonido.getSonido(archivo);

    if (sonido != null) {
      return reproducirSonido(sonido);
    } else {
      System.out.println("Imposible cargar el archivo de audio " + archivo);
      return null;
    }
  }
 protected static AudioClip reproducirSonidoHilo(String nombreSonido) {
   if (!sonidosCargados) {
     MotorSonido.cargarSonidos();
   }
   AudioClip sonido = MotorSonido.sonidos.get(nombreSonido);
   if (sonido != null) {
     Thread nuevoHilo = new ThreadSonido(sonido);
     nuevoHilo.start();
     // MotorSonido.reproducirSonido(sonido);
   }
   return sonido;
 }
  public static AudioClip getSonido(String archivo) {
    AudioClip sonido = null;

    ClassLoader classLoader = MotorSonido.class.getClassLoader();
    URL sonidoURL = classLoader.getResource(MotorSonido.getDirectorioSonido() + archivo);

    if (sonidoURL != null) {
      sonido = Applet.newAudioClip(sonidoURL);
    }

    return sonido;
  }
  public static void cargarSonidos() {
    MotorSonido.sonidos.put(
        MotorSonido.getSonidoPiezaColisionada(),
        MotorSonido.getSonido(MotorSonido.getSonidoPiezaColisionada()));
    MotorSonido.sonidos.put(
        MotorSonido.getSonidoPiezaRotada(),
        MotorSonido.getSonido(MotorSonido.getSonidoPiezaRotada()));
    MotorSonido.sonidos.put(
        MotorSonido.getSonidoLineaHecha(),
        MotorSonido.getSonido(MotorSonido.getSonidoLineaHecha()));
    MotorSonido.sonidos.put(
        MotorSonido.getSonidoMenuOpcionCambiada(),
        MotorSonido.getSonido(MotorSonido.getSonidoMenuOpcionCambiada()));
    MotorSonido.sonidos.put(
        MotorSonido.getSonidoMenuOpcionAceptada(),
        MotorSonido.getSonido(MotorSonido.getSonidoMenuOpcionAceptada()));

    MotorSonido.sonidosCargados = true;
  }
 public static AudioClip menuOpcionAceptada() {
   return MotorSonido.reproducirSonidoHilo(MotorSonido.getSonidoMenuOpcionAceptada());
 }
 public static AudioClip lineaHecha() {
   return MotorSonido.reproducirSonidoHilo(MotorSonido.getSonidoLineaHecha());
 }
 public static AudioClip piezaRotada() {
   return MotorSonido.reproducirSonidoHilo(MotorSonido.getSonidoPiezaRotada());
 }