Creando un reproductor de medios en JAVA.

marzo 7, 2009 at 11:23 pm 7 comentarios

Hola bloggeros!.

En esta pequeña entrada, intentare explicar como crear un reproductor de medios en JAVA, para ello utilizaremos el java media framework API, y un pequeño ejemplito qué me e currado con el eclipse ( ya estaba un poquítin asta las narices del netbeans ) .

Bien para ello intentare hacer un pequeño esquema de lo qué tenemos entre manos, y explicaremos el codigo linea a linea para entender mas a fondo como funciona este API.

Player

Player es una interface,  qué almacena una serie de metodos que nos permitiran reproducir archivos de musica, archivos de video, y en general tambien nos permitira acceso a streams multimedia ( STREAMING ) lo qué nos facilitira demasiado el desarollo de aplicaciones qué necesitan acceder a un determinado recurso usando implementaciones de protocolos RTP o http.

Para inicializar un objeto instanciado de la clase Player lo unico qué tenemos qué hacer, es lo siguiente:

Player  instanciado = Manager.createPlayer(“file:C:/archivo.mp3”);

Como vemos en la linea1, creamos un puntero hacia Player, y lo inicializamos con Manager.createPlayer() pasandole como sobrecarga el archivo qué queremos reproducir, y en teoria para llamar al reproductor tendriamos qué hacer lo siguiente:

instanciado.start();

Esto permitira incializar el objeto y permitira reproducir el stream.

Pero qué sucedera si hacemos esto?, qué simplemente nos dira qué el player no esta configurado y qué nos podemos comer el codigo con patatas, a sí qué alternativa tenemos?.

Player  p = Manager.createRealizedPlayer(url);

Linea 1,creamos un puntero desde Player, y seguidamente lo inicializamos con Manager.createPlayer(), una vez inicializado lo sobrecargamos pasando como parametro el archivo qué deseemos reproducir, esta vez sí se reproducira debido a qué creamos un player configurado y listo para reproducir archivos multimedia.

Bueno aquí el ejemplito qué tanto nos toca la moral.

import javax.media.*;
import javax.media.format.*;
import javax.media.protocol.*;
import javax.media.control.*;
import javax.swing.*;
import java.net.*;
import java.awt.*;
public class mediaPlayer{
public static Player p = null;

public static void openFile(URL url){
try{
p = Manager.createRealizedPlayer(url);
p.start();
}catch (Exception o){
o.printStackTrace();
}
}
public static JFrame addContainer(){
JFrame frame = new JFrame();
Component comp = p.getVisualComponent();
Component compRep = p.getControlPanelComponent();
if ( comp != null && compRep != null ){
frame.add(comp,BorderLayout.CENTER);
frame.add(comp,BorderLayout.SOUTH);
}else{
System.exit ( -1 );
}
return ( frame );
}
public static void main(String args[]){
JFileChooser choss = new JFileChooser();
choss.showOpenDialog(null);
try{
URL urlSet = choss.getSelectedFile().toURL();
openFile(urlSet);
JFrame resultSet = addContainer();
if ( resultSet != null ){
resultSet.setSize(300,200);
resultSet.setVisible ( true );
}
}catch (Exception o){
o.printStackTrace();
}

}

}

Metodo 1:  openFile( URL url ) hereda : java.net.URL;

public static void openFile(URL url){
try{
p = Manager.createRealizedPlayer(url);
p.start();
}catch (Exception o){
o.printStackTrace();
}
}

p = Manager.createRealizedPlayer(url);

Creamos una instancia a la clase Player, y seguidamente la inicializamos con Manager.createPlayer() pasandole como parametro una variable de tipo URL  qué contendra la direccion de nuestro archivo a reproducir.

p.start();

Inicializamos el player, para qué nos permita reproducir el archivo de musica o de video qué le  hemos pasado como sobrecarga al metodo openFile.

Metodo 2: addContainer() devuelve JFrame ( javax.swing ).

public static JFrame addContainer(){
JFrame frame = new JFrame();
Component comp = p.getVisualComponent();
Component compRep = p.getControlPanelComponent();
if ( comp != null && compRep != null ){
frame.add(comp,BorderLayout.CENTER);
frame.add(comp,BorderLayout.SOUTH);
}else{
System.exit ( -1 );
}
return ( frame );
}

Component comp = p.getVisualComponent();

Obtenemos los datos de video almacenados en el player, si existen datos de video en el player entonces se asignaran correctamente, sí no se creara una excepcion de tipo NullPointerException.

Component compRep = p.getControlPanelComponent();

Obtenemos los datos de visualizacion del panel de control, esto nos permitira visualizar el panel de control dentro de un contenedor JFrame.

if ( comp != null && compRep != null ){
frame.add(comp,BorderLayout.CENTER);
frame.add(comp,BorderLayout.SOUTH);
}

Si los datos qué se han obtenido no estan vacios, entonces se agregan al contenedor JFrame, y seguidamente se devuelve el contenedor JFrame para qué en el punto de entrada se cree un nuevo JFrame y pueda ser visualizado el video.

Metodo 3: public static void main(String args[]) punto de inicializacion del programa.

public static void main(String args[]){
JFileChooser choss = new JFileChooser();
choss.showOpenDialog(null);
try{
URL urlSet = choss.getSelectedFile().toURL();
openFile(urlSet);
JFrame resultSet = addContainer();
if ( resultSet != null ){
resultSet.setSize(300,200);
resultSet.setVisible ( true );
}
}catch (Exception o){
o.printStackTrace();
}

}

}

Creamos una instancia a la clase JFileChooser, y seguidamente mostramos un cuadro de dialogo para qué nos muestre el archivo qué deseamos reproducir, seguidamente llamamos a openFile y sobrecargamos dicho metodo con el nombre del archivo a reproducir, lo qué producira qué el player este incializado y seguidamente podamos llamar a addContainer() qué nos permitira crear un contenedor JFrame y obtener los datos qué nosotros hemos obtenido a partir del recurso qué hemos seleccionado dentro del JFileChooser.

Espero que os haya sido de utilidad.

Saludos.

Anuncios

Entry filed under: Programación.

Maquinas virtuales en GNU/Linux. Escribiendo software de calidad.

7 comentarios Add your own

  • 1. Iber  |  abril 3, 2009 en 2:57 pm

    si pudieses abilitarnos o facilitarnos el codigo seria buenisima a ver komo corre

  • 2. anonimo  |  mayo 27, 2011 en 8:48 pm

    no me correel ejercicio

  • 3. talkof9ja.blogspot.com  |  mayo 18, 2013 en 12:03 pm

    Take note that Edge – Rank, the Facebook News Feed optimization algorithm that determines
    what content or activities from your network is displayed on News feed, prefers visual content too.
    Create a “Custom HTML” module in the position you would like.
    All of the content on your Fan page is related to your business.

  • 4. free game angry birds  |  junio 3, 2013 en 11:14 pm

    I have interviewed a few parents to attempt to
    understand what their true objection is with their child playing video games.
    The player who spins the coin is referred to as the spinner.
    Most video game testers reported that their salary falls between
    $15,000 and $55, 000 in a year.

  • For any kind of luxury item of consumption, MAD (Money, Authority and Desire) is required.

    It was an entertaining radio program that played the music people wanted
    to hear combined with his groovy upbeat personality.
    Another radio commercial production tip to chew on is to make sure the audio quality is excellent on any spot your produce.

  • 6. radio controlled travel clocks uk  |  junio 12, 2013 en 1:49 am

    Enjoying the service of Odyssey – Streaming – Radio
    is so easy. It was an entertaining radio program that played
    the music people wanted to hear combined with his groovy upbeat personality.
    So, a custom direct application and route tracking can
    make it easier to you cut fuel cost, save visit time and wholesome
    delivery.

  • 7. Haus Fay Hotel  |  junio 19, 2013 en 5:49 pm

    I visited multiple websites except the audio feature for audio
    songs current at this web page is in fact marvelous.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


marzo 2009
L M X J V S D
« Feb   Abr »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Licencia

Linux Jungle se encuentra bajo una licencia Creative Commons: Reconocimiento - No comercial - Compartir con la misma licencia Creative Commons License


A %d blogueros les gusta esto: