Applets Java


En esta página:

  • Sonido

Sonido

En Java existe una manera (tampoco muy precisa, pero mucho mejor que las que ofrece Javascript o HTML) de hacer funcionar ficheros de sonido. Para ello utilizaremos el interfaz AudioClip:

AudioClip sonido = getAudioClip(getDocumentBase(), "musica.au");

Con esto cargaremos el sonido que esté en el fichero "musica.au". Para hacer algo con él disponemos de tres métodos:

Sonido.play()
Toca el fichero, aunque sólo una vez.
Sonido.loop()
Toca el fichero indefinidamente.
Sonido.stop()
Para la reproducción del sonido.

Aquí no disponemos de un MediaTracker para comprobar si se ha terminado de cargar o no. Afortunadamente, la variable sonido será igual a null hasta que finalice la carga del fichero. De modo que estaremos todo el rato comprobando si esa variable tiene dicho valor, y cuando no sea así tocaremos un poco de música:

Suena.java
/**
 * Applet Suena
 *
 * <APPLET CODE="Suena.class" WIDTH="56" HEIGHT="60">
 * </APPLET>
 */

import java.applet.Applet;
import java.awt.*;

public class MostrarAnimacion extends Applet implements Runnable {
  AudioClip sonido;
  Thread hilo = null;
  public void init() {
    sonido = getAudioClip(getDocumentBase(), "musica.au");
  }
  public void start() {
    if (hilo==null) {
      hilo = new Thread(this);
      hilo.start();
    }
  }
  public void stop() {
    hilo = null;
  }
  public void run() {
    while (hilo!=null && hilo.isAlive()) {
      if (sonido != null) {
        sonido.loop();
        hilo = null;
      }
      try {
        hilo.sleep(1);
      }
      catch (InterruptedException e) {}
    }
  }
}