Archivo

Archive for 23 marzo 2009

Reproducir Formatos *.MP3 + Java Media FrameWork (JMF) En Ubuntu

Hace unos dias atrás instalé el Java Media FrameWork pensando que podria reproducir mp3s con el, pero tal fue mi sorpresa que el JMF por si solo no podia hacerlo XD . Al intentar reproducir mp3s me tiraba un error mas o menos asi

Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 24000.0 frame rate, FrameSize=32768 bits
Failed to realize: com.sun.media.PlaybackEngine@18e80a6
Error: Unable to realize com.sun.media.PlaybackEngine@18e80a6

Buscando una solucion encontre que tenia que descargar aparte un plugin para reproducir los mp3s ( para los interesados el plugin se llama JavaMP3plugin.zip ).

A pesar que segui todas las indicaciones para instalar ese plugin no sirvio de nada por lo que me puse a buscar por otra parte alguna solucion… y encontre esta libreria que trae los codec para poder reproducir mp3s con JMF, Su nombre es jffmpeg, Aqui pueden ver los Formatos Soportados por esta libreria. La forma de uso es muy sencilla solo descargan la ultima version del archivo jffmpeg.jar y lo agregan a su proyecto junto con el jmf.jar (Ir a este post para instar el Java Media FrameWork JMF).

Aqui tengo un ejemplo de su uso:

Paso 1

Agregan las librerias a su proyecto , Click derecho en Libraries / Add Library

Luego hacen click en Manager Libraries


Ahora Click en New Library…

Ponemos algun Nombre, yo le puse JMF

Agregamos el jmf.jar y jffmpeg.jar clickeando en Add JAR/Folder y luego clickeamos OK

Por ultimo seleccionamos nuestra libreria JMF y presionamos Add Library

Ya tenemos las librerias necesarias para reproducir los mp3s ahora vamos al codigo.
Para eso hice esta simple aplicacion de consola para que vean el funcionamiento.

Clase Main.java

package mp3player;
/**
*
* @author Esteban Fuentealba
*/
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
/* Importamos Las clases del Package Media */
import javax.media.*;
/* Tambien necesitamos importar AudioFormat del package javax.media.format para poder agregar los codecs */
import javax.media.format.AudioFormat;

public class Main {

public static void main(String[] args) {
if (args.length > 0) {
try {
/* Esta es la direccion del codec que decodifica los mp3 */
String jffmpegAudioDecoder = "net.sourceforge.jffmpeg.AudioDecoder";
/* Cargamos el codec y lo guardamos en un objeto de tipo Codec */
Codec codecAudio = (Codec) Class.forName(jffmpegAudioDecoder).newInstance();
/* Agregamos los codec al PlugInManager */
PlugInManager.addPlugIn(jffmpegAudioDecoder,
codecAudio.getSupportedInputFormats(),
new Format[]{new AudioFormat("LINEAR")},
PlugInManager.CODEC);
/* Y ahora podemos crear un objeto Player que es del JMF */
Player miPlayer = Manager.createPlayer(new URL(args[0].toString()));
/* Le ponemos Play a nuestro archivo cargado  */
miPlayer.start();
} catch (NoPlayerException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (MalformedURLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
System.out.println("ERROR: Debes pasar como parametro la direccion de un archivo mp3");
}
}
}

Modo de Uso:
Crean el Jar y desde la terminal hacen lo siguiente

java -jar  

Ejemplo:

java -jar /home/esteban/NetBeansProjects/Mp3Player/dist/Mp3Player.jar http://s3.amazonaws.com/projectionist/sin-documentos.mp3

Codigo Fuente
mp3playertar:

Espero que sirva…

Saludos!

Instalar Java Media Framework JMF en Ubuntu

Ayer estube instalando este framework para hacer un reproductor de mp3s en Java

Lo primero es Tener la ultima version del JRE y del JDK para instalar el Java Runtime Environment abrimos una terminal y tecleamos:

PASO 1

sudo apt-get install sun-java6-jre sun-java6-plugin

Para instalar el Java Development Kit tecleamos:

sudo apt-get install sun-java6-jdk

PASO 2
Ya con eso instalado ahora es turno del Java Media Framework lo descargan desde:
http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html
lo tienen que guardar en su home
luego de haberlo descargado tecleamos en la terminal

sudo sed -i 's/tail +309/tail -n +309/g' jmf-2_1_1e-linux-i586.bin
sudo sh jmf-2_1_1e-linux-i586.bin
export JMFHOME=/home//JMF-2.1.1e
export CLASSPATH=$JMFHOME/lib/jmf.jar:.:${CLASSPATH}
export LD_LIBRARY_PATH=$JMFHOME/lib:${LD_LIBRARY_PATH}

(Cambian < suUsuario > por su usuario)

Con eso ya tenemos instalado el JMF

PD: Si les aparece errores de Video Card como:

java.lang.Error: Can’t open video card 0
java.lang.Error: Can’t open video card 1
java.lang.Error: Can’t open video card 2
java.lang.Error: Can’t open video card 3
java.lang.Error: Can’t open video card 4
java.lang.Error: Can’t open video card 5
java.lang.Error: Can’t open video card 6
java.lang.Error: Can’t open video card 7
java.lang.Error: Can’t open video card 8
java.lang.Error: Can’t open video card 9

Para esos errores deben descargar el jmf-2_1_1e-alljava.zip descomprimirlo en su carpeta home y luego hacer lo del Paso 2 .

La Libreria queda en su

home/suUsuario/JMF-2.1.1e

en mi caso:

home/esteban/JMF-2.1.1e

Saludos!

Categorías:Java Etiquetas: , , , ,

MySQL + Java + NetBeans [ Conectar a una Base de datos con JAVA ]

Este es un tutorial de lo que aprendi hoy xD, muestra como conectar a una base de datos (MYSQL) usando como lenguaje de programacion JAVA y como IDE NetBeans.

Primero que todo debemos instalar en nuestras máquinas MySQL , yo tengo xUbuntu asi que lo instalo abriendo una Terminal y escribiendo lo siguiente:

sudo apt-get install mysql-server mysql-client

Una vez instalado se cambia la contraseña (password), para eso tecleamos:

sudo /usr/bin/mysqladmin -u root password 

cambiando <tuclave> por la contraseña … ejemplo:

sudo /usr/bin/mysqladmin -u root password 123456

y ya tienes instalado MySQL :D , para entrar solo teclea:

mysql -u root -p

Una vez dentro de la consola mysql podremos crear bases de datos, tablas, seleccionar, etc…
Para crear una base de datos se usa el comando

create database  ;

ejemplo:

create database test;

Para entrar a la base de datos creada usamos el comando

use  ;

ejemplo:

use test;

Ojo con los punto y comas “;
Ya dentro de la base de datos podremos ejecutar sentencias DDL y DML

Ahora para efecto del tutorial creamos dos tablas, una tabla alumno y otra tabla nota , cada nota tiene referenciado un rut de algun alumno.

en la misma consola escribimos:

CREATE TABLE alumno (
rut integer,
nombre varchar(100),
direccion varchar(100),
CONSTRAINT pk_alumno_rut PRIMARY KEY(rut)
);
CREATE TABLE nota (
rut integer,
nota double,
CONSTRAINT fk_nota_rut FOREIGN KEY(rut) REFERENCES alumno(rut)
);

ahora insertamos algunos datos a esas tablas

INSERT INTO alumno VALUES
(123456,"Esteban Fuentealba","Talcahuano lalal 368"),
(654321,"Juan Perez","Lalalala 87 chile"),
(47,"Homero Simpson","Avenida siempre viva,Springfield");

y por ultimo ingresamos algunas notas

INSERT INTO nota VALUES
(123456,7.0),
(47,3.5),
(654321,6.1);

Ahora, teniendo una base de datos poblada, nos vamos a netbeans y creamos un nuevo proyecto
File/New Proyect y seleccionamos Java / Java Aplication , Le ponemos cualquier nombre.

Aqui dejo el codigo comentado paso a paso:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package mysqljava;
/*
*  Importamos todas las clases el package java.sql
*/
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author esteban
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args)  {
/*
Declaramos una variable "con" del tipo Connection
con ello podremos conectarnos a la base de datos
*/
Connection con = null;
try {
/*
Seteamos el driver-libreria de nuestro motor que usaremos, MySQL
*/
Class.forName("com.mysql.jdbc.Driver").newInstance();
/*
Creamos la coneccion, pasamos como parametros:
* /
* jdbc:mysql://localhost/test
*
* 
* root
*
* 
* root
*/
con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "root");
if (con != null) {
/*
creamos un objeto Statement , con el podremos enviar al servidor sql  consultas
*/
Statement st = con.createStatement();
/*
Ahora enviaremos una consulta para seleccionar todos los alumnos y que nota se han sacado
y lo guardaremos en un objeto del tipo ResultSet
*/
ResultSet r = st.executeQuery("SELECT a.nombre as nombre, n.nota as nota FROM alumno a,nota n WHERE n.rut = a.rut ORDER BY n.nota");
/*
Iteramos el resultado para mostrar cada fila y especificamos que columna queremos con el metodo getString o getDouble segun este en la base de datos
*/
while(r.next()) {
/*
Imprimo por consola el nombre y la nota de todos los alumnos ingresados a la base de datos
*/
System.out.println("[Alumno: "+r.getString("nombre")+"] [Nota:"+r.getDouble("nota")+"]");
}
}
} catch (InstantiationException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

}

Por ultimo, falta lo mas importante, agregar a nuestro proyecto los drivers de MySQL para ser usados con JAVA, el driver (libreria) la pueden descargar desde la pagina de MySQL .

Una vez descargado el mysql-connector-java-X.X.X lo descomprimen y lo agregan al proyecto:

Click derecho en Libraries / Add Jar-Folder y buscamos el archivo que descomprimimos , en mi caso agregue mysql-connector-java-5.1.7-bin.jar

Compilamos , Corremos la aplicacion y el resultado es algo como esto

init:
deps-jar:
compile:
run:
[Alumno: Homero Simpson] [Nota:3.5]
[Alumno: Juan Perez] [Nota:6.1]
[Alumno: Esteban Fuentealba] [Nota:7.0]
BUILD SUCCESSFUL (total time: 10 seconds)

Los alumnos ordenados por nota de menor a mayor xD
Descargar Codigo Fuente :
mysqljava

Espero que les sirva,

Saludos!.

Categorías:Java Etiquetas: , , , ,

Mp3Spider | Ver 1.0 For Linux xD

hace unas 3 semanas saque de mi ordenador el sistema operativo windows xD , por lo que no he podido tomar el codigo de mp3spider , pero empece a pasar el codigo a mono, haciendo varias mejoras y cambiando algunas cosas.

Hace mas menos una semana empece con ello y ya tengo algo armado

ver en tamaño grande

Bueno eso será mas menos la pantalla principal, planeo generar una gran base de datos de links y playlist de usuarios del buscador.

Compilado con mono2.2 , aunque he encontrado algunos fallos de mono =/

El codigo por ahora no lo liberare porque quiero seguir aprendiendo por mis medios , pero pronto quizas lo libere para que hagan de este programa uno mejor aun.

Saludos!

PD: GMP3 es interesante igual xDDDDDDDDD

Categorías:Mono Etiquetas: , , , , ,

Instalando Mono 2.2 + Mono Develop MonoDevelop 2.0 Beta 1 (1.9.2) en Xubuntu

Despues de muchos errores pude instalar mono 2.2 y mono develop 2.0, despues de mucho buscar soluciones les dejo la forma en que yo lo hice xD.

Paso 1

Primero que todo deben instalar todas las actualizaciones pendiente, tambien necesitarán descargar estos paquetes y librerias para compilar , para eso escriban en terminal:

sudo apt-get install build-essential bison pkg-config libglib2.0-dev bzip2 gawk libpng12-dev libexif-dev libx11-dev libjpeg62-dev libfontconfig1-dev libtiff4-dev libgif-dev libxrender-dev intltool libgtk2.0-cil libglade2.0-cil libpango1.0-dev libatk1.0-dev libgtk2.0-dev

les preguntara:
¿Desea continuar [S/n]?
y escriben S

Paso 2

Descargar la ultima version de mono

wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.2.tar.bz2

Desempaquetar y compilar

tar jxf /home/esteban/Desktop/mono-2.2.tar.bz2
cd /home/esteban/Desktop/mono-2.2
./configure --prefix=/usr
sudo make &amp;&amp; sudo make install

Este es el paso mas tedioso de la instalacion, demorará muchos tiempo ,
Puede tardar mucho en :
MDOC    [net_2_0] netdocs.tree
Pero es normal.

Paso 3

Comprobar la version de Mono con el siguiente comando

mono --version

Nos devolverá algo asi:

Mono JIT compiler version 2.2 (tarball mié mar  4 00:01:12 CLST 2009)
Copyright (C) 2002-2008 Novell, Inc and Contributors. http://www.mono-project.com
TLS:           __thread
GC:            Included Boehm (with typed GC)
SIGSEGV:       altstack
Notifications: epoll
Architecture:  x86
Disabled:      none

Paso 4

instalar libdigiplus

sudo apt-get install libgdiplus

Paso 5

Ahora instalar monoDevelop, para eso Descarguen la ultima version de mono-addins

wget http://ftp.novell.com/pub/mono/sources/mono-addins/mono-addins-0.4.zip
tar xjf  /home/esteban/Desktop/mono-addins-0.4.zip
cd /home/esteban/Desktop/mono-addins-0.4
./configure --prefix=/usr
sudo make &amp;&amp; sudo make install

Paso 6

Instalar la ultima version de gtk#

wget http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.7.tar.bz2
tar jxf /home/esteban/Desktop/gtk-sharp-2.12.7.tar.bz2
cd /home/esteban/Desktop/gtk-sharp-2.12.7
./configure --prefix=/usr
sudo make &amp;&amp; sudo make install

Paso 7

Instalar gnome sharp

sudo apt-get install libgnome2.0-cil

Paso 8
Descargar e instalar MonoDevelop 1.9.2

wget http://ftp.novell.com/pub/mono/sources/monodevelop/monodevelop-1.9.2.tar.bz2
tar jxf /home/esteban/Desktop/monodevelop-1.9.2
cd /home/esteban/Desktop/monodevelop-1.9.2
./configure --prefix=/usr
sudo make &amp;&amp; sudo make install

Listo ya esta instalado Mono 2.2 y MonoDevelop 2.0 Beta 1 (1.9.2) EN XUbuntu, espero que les sirva

Saludos!

Categorías:Mono Etiquetas: , , , ,