MP3 Player con Java
Crear un reproductor MP3 con JAVA
Java es una herramienta muy poderosa, con la cual podemos realizar cualquier cosa que tengamos en mente, como un reproductor de archivos MP3.
Para el presente proyecto vamos a utilizar las siguientes librerías
· jl1.0.jar
· mp3spi1.9.4.jar
· tritonus_share.jar
Para reproducir un sonido con cualquier extensión, vamos se va a hacer uso de la Interface AudioClip
Para cargar un archivo, utilizamos el método getAudioClip
AudioClip player_play = getAudioClip(getDocumentBase(), “son_01.mp3”);
Para reproducir el archivo vamos a utilizar el método de plasy() player_play.play()
Empecemos con el desarrollo del applet, la funcion principal de un Applet es el init(), es donde instanciamos los objetos que vamos a utilizar.
public void init() {
//Colocamos un Layout al Applet
this.setLayout(new BorderLayout());
//Obtenemos las imagenes para el play y el pause
icon_play = getImage(getDocumentBase(), play);
icon_pause = getImage(getDocumentBase(), pause);
//obtenemos la direccion del archivo de sonido,
sound_player = getParameter("sound_player");
//Obtenenos el archivos de audio
player_play = getAudioClip(getDocumentBase(), sound_player);
//asignamos la imagen play al Objeto ImageIcon
ImageIcon icon = new ImageIcon(icon_play);
//Boton para reproducir el archivo de sonido
btn_play_pause = new JButton();
btn_play_pause.setSize(30, 25);
//colocamos el icono PLAY al boton
btn_play_pause.setIcon(icon);
//le colocamos el nombre de play para poder controlar el evento
btn_play_pause.setName("play");
//le asignamos un color de Fondo Blanco
btn_play_pause.setBackground(new Color(255,255,255));
//cambiamos el color del Border a blanco
btn_play_pause.setBorder(new BevelBorder(2, new Color(255,255,255),new Color(0,0,0)));
}
Continuando con el desarrollo, ahora vamos a crear el evento del botón Play
Que es un Clase que implementa la interfaz ActionListener
class PlayPauseListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
//verificamos si el boton se encuentra en play o pause
//si se encuentra en play, entonces el boton deberia cambiar a pausa
if (btn.getName().equals("play")) {
btn.setName("pause");
//le asignamos la imagen pausa al boton
ImageIcon icon = new ImageIcon(icon_pause);
btn.setIcon(icon);
//ejecutamos el archivo de musica, si el archivo no se encuentra, se va
a ejecutar la Excepcion
try {
player_play.play();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null,"EXC 1"+ e1.getMessage());
}
} else {//si el boton se encuentra en pausa, entonces deberia cambiarse a
play
btn.setName("play");
//le asignamos la imagen play al boton
ImageIcon icon = new ImageIcon(icon_play);
btn.setIcon(icon);
try {
player_play.stop();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null,"EXC 2 "+ e1.getMessage());
}
}
}
}
Como pueden observar el desarrollo no es muy complicado, solo se necesita saber lo básico de este maravilloso lenguaje de programación
El código completo
import java.applet.AudioClip;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.border.BevelBorder;
/**
* @author Davis Mendoza P.
*/
public class Player extends JApplet {
private static final long serialVersionUID = 1L;
private AudioClip player_play;
private String play = "assets/images/play.png";
private String pause = "assets/images/pause.png";
private Image icon_play = null;
private Image icon_pause = null;
private JButton btn_play_pause = null;
private String sound_player = null;
public void init() {
this.setLayout(new BorderLayout());
icon_play = getImage(getDocumentBase(), play);
icon_pause = getImage(getDocumentBase(), pause);
sound_player = getParameter("sound_player");
player_play = getAudioClip(getDocumentBase(), sound_player);
ImageIcon icon = new ImageIcon(icon_play);
btn_play_pause = new JButton();
btn_play_pause.setSize(30, 25);
btn_play_pause.setIcon(icon);
btn_play_pause.setName("play");
btn_play_pause.setBackground(new Color(255,255,255));
btn_play_pause.setBorder(new BevelBorder(2, new Color(255,255,255),new Color(0,0,0)));
btn_play_pause.addActionListener(new PlayPauseListener());
this.setCursor(new Cursor(Cursor.HAND_CURSOR));
this.setBackground(new Color(255,255,255));
this.add(btn_play_pause, "Center");
}
class PlayPauseListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
if (btn.getName().equals("play")) {
btn.setName("pause");
ImageIcon icon = new ImageIcon(icon_pause);
btn.setIcon(icon);
try {
player_play.play();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null,"EXC 1"+ e1.getMessage());
}
} else {
btn.setName("play");
ImageIcon icon = new ImageIcon(icon_play);
btn.setIcon(icon);
try {
player_play.stop();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null,"EXC 2 "+ e1.getMessage());
}
}
}
}
}
Para adicionar el applet a una página web, ya sea JSP, PHP, etc.
<APPLET code="Player.class" archive="/mp3_player.jar"
width="30" height="30" name="playerid">
<param name="sound_player" value="mp3/son_01.mp3">
</APPLET>
Donde
1. code="Player.class" es la clase principal de la Aplicación
2. archive="/mp3_player.jar" Es la dirección de la Aplicación JAR
3. <param name="sound_player" value="mp3/son_01.mp3"> es la direccion del archive MP3 que le enviamos como parametro de entrada
Se me olvidaba si ejecutamos el applet desde una página web, y reproducimos un determinado archivo de sonido, si cerramos el navegador el applet seguirá funcionando, en este caso seguirá reproduciendo el archivo de música, para solucionar esto, tenemos que modificar el método stop() del applet
public void stop(){
try {
player_play.stop();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null,"EXC 3 "+ e1.getMessage());
}
}
Finalmente les dejo los archivos fuente de este ejemplo para que lo descarguen
http://www.megaupload.com/?d=D1I6XMXO
La contraseña es “java”