Suscribirse al Feed
18Jul

[codigo] Cargar y reproducir audio en Java

En esta ocasión explicaré un sencillo ejemplo de reproducción de audio en Java, tomado del libro How-to program in Java de Deitel. La clase que utilizamos para este tipo de propósitos es AudioClip, que posee tres simples métodos:

  • play(), para reproducir una vez el archivo que le tengamos asociado
  • loop(), para reproducir indefinidamente el archivo que le tengamos asociado
  • stop(), para detener el sonido que se está reproduciendo

Para iniciar un objeto AudioClip utilizamos el método getAudioClip, de la clase Applet, de la siguiente manera: getAudioClip(getDocumentBase(),"archivo.wav").

El resultado...

El código...


// Cargar un clip de audio y reproducirlo.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CargarAudioYReproducir extends JApplet {
   private AudioClip sonido1, sonido2, sonidoActual;
   private JButton reproducirSonido, sonidoContinuo, detenerSonido;
   private JComboBox seleccionarSonido;
   // cargar la imagen cuando el subprograma empiece a ejecutarse
   public void init()
   {
      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout() );
      String opciones[] = { "Welcome", "Hi" };
      seleccionarSonido = new JComboBox( opciones );
      seleccionarSonido.addItemListener(
         new ItemListener() {
            // detener sonido y cambiarlo por el que seleccionó el usuario
            public void itemStateChanged( ItemEvent e )
            {
               sonidoActual.stop();
               sonidoActual =
                  seleccionarSonido.getSelectedIndex() == 0 ? sonido1 : sonido2;
            }
         } // fin de la clase interna anónima
      ); // fin de la llamada al método addItemListener
      contenedor.add( seleccionarSonido );
      // establecer botones y manejador de eventos de botón
      ButtonHandler manejador = new ButtonHandler();
      reproducirSonido = new JButton( "Reproducir" );
      reproducirSonido.addActionListener( manejador );
      contenedor.add( reproducirSonido );
      sonidoContinuo = new JButton( "Continuo" );
      sonidoContinuo.addActionListener( manejador );
      contenedor.add( sonidoContinuo );
      detenerSonido = new JButton( "Detener" );
      detenerSonido.addActionListener( manejador );
      contenedor.add( detenerSonido );
      // cargar sonidos y establecer sonidoActual
      sonido1 = getAudioClip( getDocumentBase(), "welcome.wav" );
      sonido2 = getAudioClip( getDocumentBase(), "hi.au" );
      sonidoActual = sonido1;
   } // fin del método init
   // detener el sonido cuando el usuario cambie de página Web
   public void stop()
   {
      sonidoActual.stop();
   }
   // clase interna privada para manejar eventos de botón
   private class ButtonHandler implements ActionListener {
      // procesar eventos de reproducir, sonido continuo y detener
      public void actionPerformed( ActionEvent eventoAccion )
      {
         if ( eventoAccion.getSource() == reproducirSonido )
            sonidoActual.play();
         else if ( eventoAccion.getSource() == sonidoContinuo )
            sonidoActual.loop();
         else if ( eventoAccion.getSource() == detenerSonido )
            sonidoActual.stop();
      }
   } // fin de la clase ButtonHandler
} // fin de la clase CargarAudioYReproducir

Descargar código fuente

Etiquetas:
Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

 

 

Antes de comentar... recuerda que no hago tareas

Te invito a subscribirte al feed RSS. ¿No sabes que es un lector de Feeds?

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS