Carga y Reproducción de clips de audio
Java proporciona varios mecanismos para reproducir sonidos en un applet. La dos formas mas simples son con el metodo play de applet y metodo play de la clase AudioClip. Las dos más simples son los applet ‘s desempeñar método y el método de jugar el AudioClip. Capacidades de audio adicionales están disponibles en el Java Media Framework y Java Sound API. Si desea reproducir un sonido una vez en un programa, el applet método play, carga el sonido y se reproduce una vez.
public void play( URL location, String soundFileName ); public void play( URL soundURL );
La primera versión carga el clip de audio almacenados en el archivo soundFileName de la ubicación y reproducirá el sonido. El primer argumento es normalmente una llamada al applet de getDocumentBase o método getCodeBase. El método getDocumentBase devuelve la ubicación del archivo HTML que carga el applet. (Si el applet se encuentra en un paquete, el método devuelve la ubicación del paquete o el archivo JAR que contiene el paquete.) El método getCodeBase indica la ubicación del applet. Archivo de clase. La segunda versión del método de play toma una URL que contiene la ubicación y el nombre de archivo del clip de audio. La declaracion:
play( getDocumentBase(), "hi.au" );
La reproduccion de clips de audio soporta varios formatos de archivos de audio, incluyendo:
• Sun formato de archivo de audio ( .au )
• Windows Wave file format (. Au extensión)
• Windows Wave formato de archivo ( .wav )
• Macintosh AIFF file format (. Wav )
• Macintosh formato de archivo AIFF ( .aif o.aiff )
• Musical Instrument Digital Interface (. Aif o. aiff)
• Instrumento musical de interfaz digital ( MIDI ) (MIDI)
JMF y Java API tambien pueden reproducir formatos adicionales
Ejemplo
El ejemplo demuestra la carga y reproduccion de un AudioClip (paquete java.applet). Esta técnica es más flexible que el método play del applet. Un applet puede usar un AudioClip para almacenar audio para una reproduccion reiterada a lo largo de la ejecución del programa.
import java.applet.AudioClip;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.FlowLayout;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
public class LoadAudioAndPlay extends JApplet
{
private AudioClip sound1, sound2, currentSound;
private JButton playJButton, loopJButton, stopJButton;
private JComboBox soundJComboBox;
public void init()
{
setLayout( new FlowLayout() );
String choices[] = { "Welcome", "Hi" };
soundJComboBox = new JComboBox( choices ); // create JComboBox
soundJComboBox.addItemListener(
new ItemListener() // anonymous inner class
{
public void itemStateChanged( ItemEvent e )
{
currentSound.stop();
currentSound = soundJComboBox.getSelectedIndex() == 0 ?
sound1 : sound2;
}
}
);
add( soundJComboBox );
ButtonHandler handler = new ButtonHandler();
playJButton = new JButton( "Play" );
playJButton.addActionListener( handler );
add( playJButton );
loopJButton = new JButton( "Loop" );
loopJButton.addActionListener( handler );
add( loopJButton );
stopJButton = new JButton( "Stop" );
stopJButton.addActionListener( handler );
add( stopJButton );
sound1 = getAudioClip( getDocumentBase(), "welcome.wav" );
sound2 = getAudioClip( getDocumentBase(), "hi.au" );
currentSound = sound1;
}
public void stop()
{
currentSound.stop();
}
private class ButtonHandler implements ActionListener
{
public void actionPerformed( ActionEvent actionEvent )
{
if ( actionEvent.getSource() == playJButton )
currentSound.play();
else if ( actionEvent.getSource() == loopJButton )
currentSound.loop();
else if ( actionEvent.getSource() == stopJButton )
currentSound.stop();
}
}
}
Aca dejo las fuentes para que hagan sus applets uds mismos (se incluye los archivos de audio)
