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) {}
    }
  }
}