Archive for August 1st, 2010

Ultimamente he estado trabajando bastante con GStreamer y JAVA, ya que estoy sumergido en un proyecto bastante ilusionante la verdad del que, poco a poco, iré comentando aquí.

Lo que voy a comentar en este post es algo que podemos obtener de la propia web de GStreamer en su documentación, y no es otra cosa que reproducir un archivo MP3, o cualquier otro soportado por GStreamer, desde JAVA.

A continuación dejo los enlaces a la wikipedia de GStreamer y JAVA, para orientar a algún perdido.

  • Gstreamer – http://es.wikipedia.org/wiki/GStreamer
  • Java – http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java

En la propia documentación de GStreamer se nos avisa de la potencia de este framework y que no es apropiado para “iniciados”, por lo que recomienda usar otros como Java Media Framework, aunque si os soy sincero, con un poco de ganas es fácil de utilizar. Personalmente, he tenido más problemas a la hora de utilizar Swing, que conectando con GStreamer y utilizar sus herramientas.

Lo primero que hay que tener en cuenta es que tanto GStreamer como JAVA son multiplataforma, por lo que lo aquí enseñado debería, ojo, DEBERÍA, ser válido tanto para Windows, Linux (en estos dos SOs es donde he realizado las pruebas) y MAC.

Como he dicho, el siguiente código su única función es la de reproducir un archivo MP3, y tiene la siguiente estructura.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void runEngine(File file) {
try {
//Obtengo la ruta absoluta del archivo a reproducir
path = file.getAbsolutePath();
 
//Arrancamos la librería GSTREAMER para rpeorducir el medio.
Gst.init();
 
//Creamos la tubería por donde circulará la información, 
//playbin es el medio que proporciona GStreamer para 
//controlar la reproducción
playbin = new PlayBin("AudioPlayer");
 
//Agregamos el archivo que queremos reproducir
playbin.setInputFile(new File(path));
playbin.setVideoSink(ElementFactory.make("fakesink", "videosink"));
 
//Cambiamos el estado a PLAYING y comenzamos la reproducción.
playbin.setState(State.PLAYING);
} catch (Throwable e) {
System.out.println("GStreamer no soportado: " + e.getLocalizedMessage());
}
}

Como podemos observar, la herramienta principal es el objeto llamado “playbin”, lo cual es un pipeline ya creado que nos permite controlar la reproducción del medio.

Y hasta aquí lo más simple de todo, a partir del playbin, podemos controlar toda la reproducción (pausar, detener, resumir, avanzar…) y obtener información (bitrate, tiempo de reproducción…), por lo que es una herramienta muy poderosa.

En los foros de GStreamer se hablar de una evolución de playbin llamada playbin2, lo cual, por lo que he llegado a leer está en versión BETA, y no he llegado a probarlo.

Más adelante hablaré de como reproducir archivos de video y otras cosillas bastante interesantes que se pueden hacer con GStreamer, además, de liberar al fin mi proyecto en el cual llevo trabajando desde comienzos de este año y me ha servidor para sacar un sobresaliente en la carrera 😀

Comments 2 Comments »

   Beat diabetes   Diabetes diet