Archive for the “JAVA” Category

Uno de los problemas que más quebraderos de cabeza me ha dado desarrollando con GStreamer ha sido poder obtener la duración de la canción o del medio que estaba reproduciendo, ya que, sin obtener dicho valor, por ejemplo, no podría controlar la reproducción de la canción, es decir, saber por dónde va por ejemplo.

El problema radica en que, para poder obtener dicha información el pipeline DEBE estar en PAUSA, si no, será casi imposible leer dicho dato.

¿Cual era el problema que tenía?, pues que la función queryDuration me devolvía siempre CERO y como es lógico, con una duración de cero minutos y cero segundos poco puedo hacer.

Este era el código que usaba:

1
2
3
4
5
Gst.init();
 playbin = new PlayBin2("AudioPlayer");
 playbin.setInputFile(new File(path));
 playbin.setState(State.PAUSED);
 playbin.setVideoSink(ElementFactory.make("fakesink", "videosink"));

Y aun diciéndole que pusiera el estado del pipeline a PAUSED, seguía devolviendo un cero como valor.

Haciendo un debug a lo grande (poniendo un bucle sin reproducir nada y ver cual era la transicion de los estados y que valor devolvía xD), observé que el problema era que pasaba de cargar el archivo a reproducirlo de forma demasiado rápida, sin darle tiempo al programa a poner el estado a PAUSE y leer el valor de la duración, por lo que siempre al leer el estado, el valor que devolvía era cero.

¿Solución? esperar a que el pipeline se ponga en PAUSED antes de seguir con la reproducción.

 

1
2
3
while(playbin.getState()!=State.PAUSED){
System.out.println("El medio aun no está listo.");
}

Y así conseguimos detener la ejecución del programa hasta que el pipeline esté listo para leerse.

Comments No Comments »

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 »

Si hace dos días hablaba del lanzamiento de la versión RC2 de NetBeans, hoy nos encontramos con que ya han lanzado la versión final.

Desde la web principal podemos descargar la nueva versión del IDE en distintos paquetes según nuestras necesidades (JAVA, C/C++, Ruby, PHP,…) y para la plataforma que tengamos (Windows, Linux o MAC).

Toda la información acerca de esta nueva release la podemos encontrar en el siguiente enlace.

Comments 1 Comment »

La segunda Release Candidate del IDE de SUN, Netbeans, ya puede ser descargada para ser probada en nuestros PCs.

Como siempre, las plataformas disponibles son Windows, Linux, MAC y Solaris.

A continuación os dejo el enlace donde, en perfecto inglés, tenemos toda la documentación, nuevas características, tutoriales, etc.

http://netbeans.org/community/releases/68/

Es de esperar que la versión final de esta IDE no tarde mucho en salir, aunque viendo la pinta que tiene esta RC2, yo diría que se asemeja muy mucho a la versión final.

Yo usaba la versión 6.7.1 que aporta Ubuntu desde sus repositorios, pero tuve un problema a la hora de conectarme a subversión y decidí darle su oportunidad a esta nueva versión. Por el momento, es estable y cumple con su cometido a la prefección.

Comments No Comments »

Hace poco se ha publicado una nueva versión del IDE NetBeans, en concreto la 6.0

Esta nueva versión soporta estas tecnologías:

Ajax | C/C++ | Databases | Debugger | Desktop | Editor | GUI Builder | Java EE | Java ME | Java SE | Javascript | Mobile | Profiler | Refactor | REST | Rich Client Platform | Ruby | SOA | SOAP | UML | Web | WSDL | XML

 

Además de estar disponible para Windows, Linux, MAC y Solaris.

 

Con lo poco que lo he usado, decir que han mejorado bastante la IDE. Tanto visualmente como a la hora de acceder a métodos en cualquier lenguaje. Una IDE indispensable a la hora de programar en JAVA.

 

La dirección es: http://www.netbeans.org/

Comments No Comments »

A continuación expondré cuales son los Entornos de Desarrollo más utilizados y/o famosos para el desarrollo en JAVA.

Los únicos que conozco son dos, además de muy famosos:

NetBeans

Eclipse

Estas dos IDE no sólo sirven para programar en JAVA, sino que desde sus webs puedes descargarte plugins para desarrollos en otros lenguajes y/o otra seria de aplicaciones muy útiles. Primeros, definamos IDE.

Un entorno de desarrollo integrado o en inglés Integrated Development Environment (‘IDE’) es un programa compuesto por un conjunto de herramientas para un programador.

Puede dedicarse en exclusiva a un sólo lenguaje de programación o bien, poder utilizarse para varios.

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica GUI.

NetBeans, este es el que yo uso. Es muy estable además de muy intuitivo.

Este entorno de desarrollo cuenta con una serie de plugins que lo extienden a otros lenguajes (C/C++, PHP,…), además de otros que lo hacen muy interesante.

Un plugin que me llamó la atención, no recuerdo el nombre, fue uno que ví en clase con el que generabas todo el código JAVA a partir de un diagrama de clases. El proyecto creo que era beta (en pruebas) aun, un día de estos buscaré el plugin y lo comentaré un poco.

Bueno, para instalar NetBeans en Linux (Ubuntu Feisty Fawn) debemos dirigirnos a la siguiente web:

Como se puede observar, es la web de SUN y no la de NetBeans, desde ahí vamos a descargarnos la versión JDK que traiga consigo NetBeans, así, matamos dos pájaros de un tiro y no tenemos que andar buscando la JDK luego. Esta instalación es para primeras instalaciones y/o que no tengamos la JDK en nuestro PC.

Si ya tenemos la JDK instalada, con ir a la web oficial de NetBeans es suficiente.

Cuando tengamos el paquete veremos que es .bin, por lo que haremos lo siguiente.

Nos vamos al directorio donde lo tengamos descargado.

cd /directorio1/…/directorioN/

Le damos permiso de ejecución.

chmod +x jdk-6u2-nb-5_5_1-linux-ml.bin

Y ejecutamos.

./jdk-6u2-nb-5_5_1-linux-ml.bin

Con esto ya tenemos NetBeans instalado en nuestro PC Linux (cualquier distribución).

En Ubuntu Feisty Fawn, bastaría con abrir una terminal y escribir lo siguiente.

sudo apt-get install netbeans5.5

Desconozco si viene ya con la JDK o no, aunque intuyo que sí.

Podemos probarlo, y si no nos convence, desinstalarlo y probar otra instalación.

Para desinstalar NetBeans, habiéndolo instalado manualmente, habría que hacer lo siguiente.

cd /home/nombrePC/netbeans-5.5.1/_uninst/

Y ejecutar el siguiente archivo.

./uninstaller

Ya tendriamos NetBeans desinstalado.

Si lo instalamos por apt-get, podemos probar lo anterior o escribir en una terminal lo siguiente.

sudo apt-get remove netbeans5.5

Y ya quedaría listo.

Eclipse, este entorno no lo he usado aún, lo tengo descargado con el plugin de C/C++ (compilar en C en la terminal se llega a hacer muy pesado, y no me fio mucho de Anjuta).

Una cosa sí, es bastante conocido en el mundo de la programación, y como se suele decir, cuando el río suena…

La instalación sería así en cualquier distribución Linux (foros Ubuntu).

Nos descargamos Eclipse de su web oficial.

Vamos al siguiente enlace y nos bajamos la JDK.

Luego deberemos editar el fichero /etc/.bashrc (OJO al punto, eso significa que el archivo es oculto, para ver estos archivos pulsamos Control+H).

Cuando lo tengamos abierto, agregamos estas líneas.

export JAVA_HOME=directorio raiz donde está jdk
export PATH=$JAVA_HOME/bin:$PATH

A continuación descomprimimos el archivo comprimido con Eclipse. Se suele recomendar que se haga en /opt/ o en /usr/local/, aunque si el tema de darle permisos da problemas, se puede descomprimir sin problemas en /home/nombrePC/.

Luego, con ir a la terminal y escribir ‘ ./eclipse ‘ en su directorio debería ser suficiente.

Si deseas lanzarlo en modo gráfico, con la terminal te mueves a su directorio.

cd /home/nombrePC/eclipse/

Y ejecutas gedit para crear un script.

sudo gedit eclipse.sh

Le agregas los siguientes datos.

#!/bin/bash
export JAVA_HOME=directorio raíz del jdk
export PATH=$JAVA_HOME/bin:$PATH
exec /home/nombrePC/eclipse/eclipse

Suponiendo que has descomprimido eclipse en /home/nombrePC/.

Le das permisos.

chmod +x eclipse.sh

Luego, crearías, si se desea, un lanzador en el escritorio y todo solucionado.

Para desinstalarlo, con borrar la carpeta tenemos más que suficiente.

En Ubuntu Feisty Fawn, también tenemos la opción de descargárnoslo de los repositorios.

Abriendo una terminal escribimos lo siguiente.

sudo apt-get install eclipse

Desconozco si viene con JDK o no, aunque intuyo que sí. Todo es probarlo. Si lo descargamos por aquí y vemos que no lo trae, o una de dos, nos descargamos la JDK y seguimos las instrucciones mencionadas anteriormente para instalar JDK, o lo desinstalamos y seguimos las instrucciones que he mencionado con anterioridad.

Para desinstalar Eclipse si lo instalamos con apt-get, nos vamos al gestor de paquetes synaptic, buscamos ‘ eclipse ‘, lo desmarcamos y aplicamos los cambios.

O aún más fácil, abrimos una terminal y escribimos lo siguiente.

sudo apt-get remove eclipse

Y ya estaría desinstalado.

Comments 1 Comment »

   Beat diabetes   Diabetes diet