Java también posee métodos predefinidos para reproducir sonido. El ordenador remoto no necesita tener un reproductor de audio; Java realizará la reproducción (evidentemente, el ordenador remoto, en donde se ejecuta el applet, necesitará disponer de hardware de sonido).
Reproducción de sonido
La forma más fácil de reproducir sonido es a través
del método play():
play( URL directorioSonido,String ficheroSonido );
o, simplemente:
play( URL unURLdeSonido );
Un URL común para el método play() es el directorio donde está el fichero HTML. Se puede acceder a esa localización a través del método getDocumentBase() de la clase Applet:
play( getDocumentBase(),"sonido.au" );
para que esto funcione, el fichero de la clase y el fichero sonido.au deberían estar en el mismo directorio.
En el applet Sonido.java, podemos ver el ejemplo completo. Su ponemos en él la existencia del fichero sonidos/gong.au:
import java.awt.Graphics;
import java.applet.Applet;
public class Sonido extends Applet {
public void paint( Graphics g ) {
g.drawString( "Prueba de
Sonido",25,25 );
play( getDocumentBase(),"sonidos/gong.au"
);
}
}
Reproducción Repetitiva
Se puede manejar el sonido como si de imágenes se tratara. Se
pueden cargar y reproducir más tarde.
Para cargar un clip de sonido, se utiliza el método getAudioClip():
AudoClip sonido;
sonido = getAudioClip( getDocumentBase(),"risas.au" );
Una vez que se carga el clip de sonido, se pueden utilizar tres métodos:
sonido.play();
para reproducir el clip de sonido.
sonido.loop();
para iniciar la reproducción del clip de sonido y que entre en un blucle de reproducción, es decir, en una repetición automática del clip.
sonido.stop();
para detener el clip de sonido que se encuentre en ese instante en reproducción.
Veamos como en el applet Bucle.java utilizamos estos métodos para repetir automáticamente una pista de audio.
import java.awt.Graphics;
import java.applet.Applet;
public class Bucle extends Applet {
AudioClip sonido;
public void init() {
sonido = getAudioClip( getDocumentBase(),"sonidos/risas.au"
);
}
public void paint( Graphics g ) {
g.drawString( "Prueba de
Repetición",25,25 );
}
public void start() {
sonido.loop();
}
public void stop() {
sonido.stop();
}
}