agosto
21

Hola gente!

Menuda panzada a trabajar me estoy dando estos días. A parte de mi trabajo “normal”, en el que sigo echando horas, llevo unos días con un proyectito entre manos: Rockola Music Player.

Se trata de una aplicación para móviles escrita en J2ME que sirve principalmente para reproducir ficheros de música en el móvil.

Seguramente me diréis: pero si de esos hay un montón. Pues sí, hay un montón, pero no me convenció ninguno (ni siquiera el KD Player que ahora mismo no carga su página principal). A todos los reproductores les he encontrado una pega, para mi, bastante grande: todos exigen crear “playlist” para empezar a escuchar música.

Entonces, después de haber hecho algún curso on-line sobre J2ME, me dije, pues bueno, pues me hago yo mi propio programa, que me coja un directorio y lo reproduzca y listo. Y así lo he hecho.

De momento me quedan cosas que tengo aún en mente, pero de momento ya he empezado.

En los próximos días iré contando aquí mismo como ha sido todo el proceso:

  • códigos de ejemplo
  • foros de ayuda
  • entorno de desarrollo
  • cuenta de sourceforge
  • configuración del ide de desarrollo con el cvs de sourceforge
  • proceso de publicación en sourceforge (esto me ha llamado realmente la atención)
  • y bueno, lo que crea que puede ser interesante… para alguien alguna vez, jeje.

Por cierto, el programa ya está bastante estable. Lo digo por si alguien lo quiere probar. Yo de momento lo he testeado en un par de emuladores y en mi Sony Ericsson K800i.

Technorati , , , , , , , , ,

Comentarios

joste el 21-08-2007 a las 16:32

Ke bueno! o sea que cuando algo no te gusta, lo haces a tu manera. Me gusta… Pues yo tengo un sharp, y no me importaría probarlo. Asi lo testeamos en más terminales.
No tengo ni idea de j2me, per si tienes algun manual o tutorial y quieres algun currela para que te eche una mano, cuenta conmigo.


Sr. Wilson el 21-08-2007 a las 16:45

Hola joste!

Gracias por tu ofrecimiento. Para el desarrollo ahora mismo no necesito ayuda… aunque bueno, está colgado en sf.net y cualquiera puede ponerse con ello o colaborar en el proyecto. Así que si quieres, por mi encantado.

Lo de probarlo en más terminales, perfecto! Así podemos comprobar que es estándar lo que se está usando. Yo he intentado colocárselo aquí en el trabajo a una compañera pero no ha colado, jajaja.

Manual en sí no tengo, pero durante los próximos días espero ir publicando una serie de manuales para que veáis todo el proceso: desde los recursos/foros para conocer el API de J2ME y en particular del apartado musical/imagen, hasta como realicé todo el tema de sourceforge.net (muy curioso, la verdad).

Ah, y no creas que me voy haciendo todo lo que no me convence, pero esto lo vi bastante asequible y con algunos ejemplos… aplicación medio estable en 2 días y medio. Creo que ese tiempo le hubiera perdido y con creces cada vez que uso cualquier otro programa de música y tengo que estar creando la dichosa “playlist” para empezar a escuchar mi música…

Eso sí, desde el lunes, es el programa que uso para escuchar mi musiquita aquí en el trabajo… y la verdad es que no está mal (si te lo instalas dirás, que cutre, pero tu pruebalo y luego me dices…, pues no es una aplicación bonita, sino funcional).


Joste el 21-08-2007 a las 17:08

Ok, esta semana no creo que me ponga a ello, pero la que viene posiblemente me baje el proyecto y si consigo un cable o un dispositivo bluetooth para el pc (en el curro seguro que hay) lo pruebo en mi movil.


wendigo el 21-08-2007 a las 9:14

Será cutre visualmente, pero seguro que es rápido y gasta poca batería, que parece que ahora sólo hacen cosas vistosas pero chapuzas y come recursos por dentro jeje.
Yo no lo puedo probar porque mi V3 no da para meter muchos MP3 ni aplicaciones, el callejero y poco más.


Sr. Wilson el 21-08-2007 a las 9:27

Efectivamente wendigo, de eso se trata. De una aplicación que haga lo que tiene que hacer, sin florituras, pues cuando escuchas música no necesitas ver gran cosa… Es más, normalmente se bloquea y se oculta la pantalla…

La eficiencia y el uso de memoria lo tengo que revisar ciertamente, pues está aun en fase alpha… Pero vamos, la idea es esa.

A ver si en los próximos días puedo ir creando los artículos para que veáis todo el proceso y alguna captura de pantalla.

También le tengo que dar una vuelta a la página principal del proyecto en sourceforge que ahora está con un look retro estilo de los 90, jajaja.


wendigo el 21-08-2007 a las 9:47

no la cambies, así en el Lynx se ve igual que en Firefox jajaja.


Sr. Wilson el 21-08-2007 a las 9:53

En eso tienes razón. Ahora mismo está cumpliendo la normativa del W3C, jajajaja.

Pero algo más bonito habrá que tener, o bueno, me has dado una idea!!! Si el programa es para ahorrar energía y que sea funcional, ¿por qué no la página? jajajaja.

Muchas gracias, mendigo, ups, digo wendigo!


joste el 21-08-2007 a las 14:12

He intentado instalarme el programilla y no me deja. Me da un error. Nunca he instalado nada, así que no se que puede ser… sigo mirando a ver si lo consigo. En teoría con meter los dos archivos descomprimidos (los paso por bluetooth) valdría verdad? Luego a ver si encuentro algún archivo de musica pequeño para hacer la prueba.
Por cierto, mi terminal es un Sharp GX15 o GX17 creo.


ACid el 21-08-2007 a las 15:10

Yo lo intenté ayer y me decía que la versión no es válida… (probé a instalar primero con el .jad y luego con el .jar). Miré la versión y dice que es:
MicroEdition-Configuration: CLDC-1.1
MIDlet-Version: 1.0.0
MicroEdition-Profile: MIDP-2.0

Quizá mi móvil (Nokia 6600) que tiene unos añitos y no instalé actualizaciones no tiene esas versiones.

Quizá me funcionase si cambio el número de versión en el Manifest y el .jad …


Sr. Wilson el 21-08-2007 a las 15:36

Hola chicos!

Pues la cosa puede ir por donde apunta ACid. Realmente no se si usa alguna cosa en particular de la configuración CLDC-1.1 y del MIDP-2.0… por lo que cambiándolo no se si resultará.

De todas formas, ahora que ya tengo casi terminado todo el desarrollo, miraré un poco a ver si lo puedo bajar de versión para que no de problemas.

Pero vamos, que en teoría sería tan sencillo como pasar el .jad y el .jar al móvil, y seleccionar el .jad para que lo instale el móvil. En algunos móviles, como el mío (Sony Ericsson K800i), el .jad no es necesario y se puede instalar directamente con el .jar.

Ah, y os comento ya de paso que el programa está casi, casi, casi terminado. Me queda algún retoquito, pero está bastante conseguido, y dentro de poco alcanzará la versión 1.0, jejeje.


joste el 21-08-2007 a las 16:23

ok, me espero a la versión 1.0 entonces.
animo con ello!
Yo creo que voy a empezar a pensar sobre el messenger ese que hablamos…


Sr. Wilson el 21-08-2007 a las 21:11

Para el que le interese probar la aplicación comunicar que ya está subida una nueva “release” (0.9.1) con el MIDP 1.0 y el CLCD 1.0.

Si alguien la prueba, que me cuente si le funciona ahora ;)

Por cierto, ya están casi todas las capturas de pantalla subidas a la página del proyecto, así como más información de la aplicación: http://rockola.sourceforge.net


Joste el 21-08-2007 a las 18:27

Nada, no hay manera… Acabo de probarlo y lo mismo… No me deja instalarlo. Me dice error de datos pero no se si será cosa de mi telefono porque como os digo, no he conseguido instalar ninguna aplicación.


Sr. Wilson el 21-08-2007 a las 20:03

He mirado la especificación del Sharp GX17, que creo que será el tuyo, y admite MIDP 2.0.

Pero bueno, puede que esté capado…
De todas formas, hoy las pruebas en el trabajo no han ido muy bien… Aunque bueno, solo lo he podido probar en un Sony Ericsson K510i (funciona correctamente), y en un Motorola V3x (NO funcionó).

En la página del proyecto voy a poner una sección en la que indicaré en qué modelos se ha probado. Y también, si me da tiempo, a ver si puedo ponerle unas trazas o algo para ver los fallos al iniciar la aplicación (en el Motorola V3x se iniciaba y salía una carpeta… pero se quedaba el móvil bloqueado).

Edito: se ha lanzado la versión 0.9.5 que incluye nuevas funcionalidades para facilitar aún más el uso de la aplicación.


wendigo el 21-08-2007 a las 8:58

Sobre lo del Sharp puede que dependa de la revisión del firmware.


joste el 21-08-2007 a las 12:44

Sinceramente, no se mucho sobre el telefono. Solo que es un Sharp GX17.
Me lo regalaron, y antes de ser mio era un telefono de empresa (con limitaciones? no lo se). No me pregunteis como ha llegado hasta mi.


Mr C el 21-08-2007 a las 11:04

Hola a todos. Estoy empezando con esto del J2ME. Tengo la herramienta Wireless Toolkit 2.5 con algunos proyectos. Mi duda es que no se como pasar las aplicaciones al movil. ¿Se puede hacer mediante bluetooht?.

Gracias


Sr. Wilson el 21-08-2007 a las 11:17

Bienvenido Mr C al apasionante mundo del desarrollo J2ME.

Para pasar las aplicaciones al móvil, tienes que generar la aplicación (jar y jad) y pasarlas al móvil, como sea:
- por usb (si tienes el cable para enganchar el móvil por usb).
- por bluetooth, si tienes bluetooth tanto en el pc como en el móvil.

Lo tienes que pasar como si fuera un mp3, una foto, o cualquier cosa. Activar el bluetooth en los dos y enviarlo al móvil, y con este, aceptar la transferencia y listo. Luego vas al móvil, a donde te lo haya guardado, y lo ejecutas para que te lo instale. Y luego ya te lo dejará en las aplicaciones.

Todo esto depende BASTANTE del móvil que tengas, pues cada fabricante hace lo que quiere con las aplicaciones JAVA. Algunos incluso capan la capacidad del móvil para no permitir su transferencia.

Espero que te sea de ayuda. Un saludo!


Acid el 21-08-2007 a las 12:35

En mi caso tengo otra forma de pasar aplicaciones que he usado mucho: grabar en la tarjeta. Cada vez es más común que los móviles tengan una tarjeta de memoria (MMC, RS MMC, mini SD, micro SD, etc)… Esta tarjeta de memoria se conecta al PC y se graban en ella las aplicaciones Java (basta con un Jar, pero si se pone un Jad pues está bien).
Si tienes que pasar muchas aplicaciones lo de la tarjeta es mejor que Bluetooth: por comodidad (muchos ficheros a la vez en lugar de uno por uno…) y rapidez (velocidad de grabación de tarjeta en lugar de velocidad de transmisión BlueTooth)
Una vez copiados los Jar a un directorio de tu tarjeta, se pone la tarjeta en el móvil, se navega a ese directorio, se elije un jad y se da a ejecutar (el móvil ya sabe lo que hay que hacer cuando se ejecuta un Jad) y si no hay Jad se ejecuta el Jar


MARIO GARCIA el 21-08-2007 a las 7:06

bueno oye solo un apregunta prodria obtener el codigo fuente en verdad lo necesito, si tan solo pudiera tener una respuesta agradeceria que me rspondieran al siguiente correo : mario_eso@hotmail.com


Sr. Wilson el 21-08-2007 a las 8:04

Hola Mario,

Pues mira, tienes que usar el CVS de SourceForge, que es donde está alojado todo el desarollo.

Aquí te dice como descargarlo:
http://sourceforge.net/cvs/?group_id=203710

Pero si no te manejas muy bien con el CVS, puedes incluso descargarlo fichero a fichero a través de la navegación web del CVS:
http://rockola.cvs.sourceforge.net/rockola/

De ahí te puedes descargar los subdirectorios importantes: res y src.
También desde ahí puedes ver el código fuente tranquilamente de alguna de las clases (no son muchas la verdad).

Espero que con estos pasos ya te apañarás para bajarlo.

Un saludo.


Sebastian el 21-08-2007 a las 4:20

Hola,te comento que provee el ROCKOLA en mi SONY ERICSSON F305 y funciono perfecto,decime,tiene tambien la opcion de ecualizador,ya que yo tambien estaba por empezar ,con un proyecto como este,principalmente con la opcion de ecualizador,muy buen trabajo,felicitaciones!!


Sebastian el 21-08-2007 a las 4:25

Hola,es mucho pedirte que armes un tuto con capturas de pantalla de como lo fuiste haciendo paso a paso,o te pido demasiado,realmente me serviria,para el proyecto de mi “J2ME MEDIA PLAYER”,ya le puse el nombre…,ademas me gustaria de como te puedo contactar por email,para preguntarte algunos puntos sobre el desarrollo con J2ME


Sebastian el 21-08-2007 a las 4:27

vaya me olvide de ponerte mi email,:
para que todos puedan comunicarse conmigo,tambien

seba_costa34@hotmail.com


Sebastian el 21-08-2007 a las 4:49

hola,soy yo nuevamente,parece que solo me ilusione con el F305,solo es capaz de ejecutar bien un archivo MP3 de sonido en la MEMORY STICK M2 que me vino con el celular de demo llamada F1FERRARI,si intento reproducir cualquier otro MP3 se queda colgado en la funcion de PLAY,el resto de las funciones si puedo ejeucutarlas,en dicho momento.


noe el 21-08-2007 a las 21:52

hola ami tambien me interesa hacer un reproductor mp3. pero para celulares touchscreen. pero tengo un gran problema. para empezar no se como hacer para reproducir un mp3 de minimo 10 megas. lo unico que puedo reproducir son mp3 de 1.8 megas para abajo uso esto para la reproduccion.

try {

InputStream is = getClass().getResourceAsStream(“Music.mp3″);
musicPlayer = Manager.createPlayer(is, “audio/mpeg”);
musicPlayer.prefetch();
musicPlayer.setLoopCount(-1);

musicPlayer.start();

}
catch (IOException ioe) {
}
catch (MediaException me) {
}

espero me puedas ayudar


Van Master el 21-08-2007 a las 0:21

Yo tambien quiero hacer un reproductor de archivo de audio pero estilo karaoke osea que salga la letra de la cancion, ya se como hacer lo demas, pero no puedo reproducir archivos mayores a 1.8mb, uso el mismo codigo que noe:
try {

InputStream is = getClass().getResourceAsStream(“Music.mp3″);
musicPlayer = Manager.createPlayer(is, “audio/mpeg”);…


Van Master el 21-08-2007 a las 0:22

espero nos puedas ayudar. por favor.


Sr. Wilson el 21-08-2007 a las 14:32

El problema que comentáis con el tamaño del mp3 es claramente una limitación de la implementación de J2ME que ha hecho el fabricante en el teléfono móvil donde estáis probando la aplicación que habéis desarrollado.

Este es el principal problema que le encuentro al J2ME, que cada fabricante hace lo que le viene en gana, y no tiene por qué cumplir con toda la especificación.

Por tanto, no creo que haya ninguna solución, pues aparentemente estáis programando de forma correcta. Yo os recomendaría, si podéis, probar en otros terminales la misma aplicación y ver si es capaz de reproducir un fichero mayor de 1.8 MB.


noe el 21-08-2007 a las 0:10

yo ya hice me reproductor gracias a este proyecto, no sabia donde descargarlo pero una vez que obtube el codigo de la rockola lo implemente para celulares toucscreen y aparte le implemente un cronometro para que los corredores puedan escuchar musica y llevar un cronometraje de cada vuelta que le dan al parque. estos cronometrajes los guardo en archivos txt. me quedo padre la aplicacion jiji. gracias Sr. Wilson por compartir el codigo me ayudo mucho. creo que su codigo es el unico de un ejemplo para hacer un reproductor en j2me. de antemano muchas gracias le dejo el link de una vercion demo que subi a la red para si alguien gusta checarlo.

http://www.megaupload.com/?d=4USW3T37
bueno gracias por empezar este proyecto de la rockola gracias a usted yo pude hacer tambien mi propia aplicacion con parte de su codigo mi aplicacion se llama cronomusic.

otra cosa Sr. Wilson queria preguntarle
si usted sabe como manejar los sensores de movimiento en j2me, sensores como el del celular w710 que cuenta los pasos etc..

se podria hacer una aplicacion java que cuente los pasos??

y tamebien me preguntaba si usted sabra firmar las aplicaciones ya que quise intalar la aplicacion en el celular lg shine y no me dejo porque no estaba firmada.

me gustaria que se pusiera en contacto conmigo si puede agregarme al messenger para platicar este es mi correo:

noe_is10@msn.com

gracias por su atencion


noe el 21-08-2007 a las 0:21

aqui le le dejo un video de cronomusic en en kemulator
http://www.youtube.com/watch?v=iZO8FPLT0ZE


Sr. Wilson el 21-08-2007 a las 12:27

wow, que sorpresa más agradable!!!

me llena de satisfacción que mi proyecto te sirviera como base para el tuyo.

sobre lo que comentas del uso de los sensores, es similar a mis anteriores comentarios sobre la implementación de la especificación J2ME de cada fabricante. Para ello te recomiendo visitar la web de desarrolladores de sony ericsson en tu caso.

yo, personalmente, nunca he trabajado con este tipo de sensores, pero me imagino que si hay algo en la especificación de J2ME acerca de estos, seguramente el fabricante lo haya añadido a su implementación. Pero eso, repito, deberá comprobarlo para su fabricante y modelo de móvil. Y de estar implementado, me imagino que empleará un par de métodos muy sencillos para su uso.

sobre la posibilidad de firmar las aplicaciones, ahí no le puedo responder, ya que ningún móvil hasta ahora me pidió tener firmada la aplicación siendo esta J2ME. actualmente tengo un móvil symbian, y en ese caso si que requiere que las aplicaciones estén firmadas, y para ello hay que solicitar un CARO certificado a symbian para poder distribuir tus programas (aunque hay otras alternativas que el usuario puede hacer en su móvil para instalar aplicaciones sin firmar). En J2ME no se si habrá algo similar, pero me imagino que si requiere firma, deberá haber una entidad que gestione dichos certificados, y puede estar seguro que requerirá un buen pago por ello.

cualquier duda, puede hacerla llegar a través de los comentarios de este mismo artículo, así será más provechoso para todos los visitantes ;)


Sr. Wilson el 21-08-2007 a las 12:28

por cierto, se me olvidaba, noe. ¿tu no tenías el mismo problema de limitación del tamaño de los mp3 a reproducir?

¿cómo lo solucionaste?

¿o es que la limitación sólo la tenías en el emulador, pero una vez instalado en el móvil, dicha limitación ya no existía?

a ver si con su experiencia puede ayudar también a nuestro amigo: Van Master!


noe el 21-08-2007 a las 17:33

si yo era el del problema de la limitacion, y la verdad no entendi mucho de su codigo solo copie las clases que hacen la correcta reproduccion del mp3. como por ejemplo las clases llamdas playerThread,playerThreadInvoker. y en el canvas usted utiliza unos arreglos como para ir cargando la cancion no solo de un golpe como yo lo hacia.

los arreglos son:

// Meta Data de los mp3
private static String metaKeys[];
private static String metaInfo[];

que no se lo que hacen solo se los copie a usted :)

tambien utilize unos metodos con los que usted podia reproducir los mp3 que son los siguientes:

private void loadAudio() {

error = null;

ficheroActual = (String) dirList.elementAt(dirIndex);
final String choosenAudio = “file://” + currentDir + ficheroActual;
guardarRutaActual = currentDir ;
// start the fileAction to get the image, it will call the method
// ImageReceived when it is finsihed
playerThread = new PlayerThread(this, choosenAudio);
playerThread.start();
playingAudio = true;
pause = false;
duracion = 0;
if (modoActual != modoCaratula && modoActual != modoCaratulaLoading ){
modoActual = modoAudio;

}

}
public void setMetaDataControl(MetaDataControl mcd) {
if (mcd == null)
return;

// Get the keys to the existing metaData
metaKeys = mcd.getKeys();
// create a String array for the metadata
metaInfo = new String[metaKeys.length];
// Save the metadata info into the String array
for (int i = 0; i < metaKeys.length; i++) {
metaInfo[i] = mcd.getKeyValue(metaKeys[i]);
// System.out.println(metaInfo[i]);
}
// Setting the height of the meta data info box which is drawn in the
// canvas apint method
//this.box_Height = (metaKeys.length + 2) * this.font_small_Height;

}

y pues esi le hice jiji.

gracias por todo.


Sr. Wilson el 21-08-2007 a las 21:00

a ver si el señor Van Master puede modificar su código para comprobar si así se elimina la limitación de los ficheros de más de 1.8 MB


Van Master el 21-08-2007 a las 18:44

Hola de nuevo, disculpen que me perdi un buen rato, esque debido a mis estudios solo puedo usar el internet los fines de semana.
Disculpe Sr. Wilson cree que ¿me podria pasar el codigo fuente solo de la parte donde reproduce los archivo de audio? , bueno, si no es mucha la molestia.
O si me podria decir de que pagina web noe pudo obtener el codigo fuente, pues Sr. Wilson en la pagina http://rockola.sourceforge.net/ no pude encontrar algo como un codigo fuente y los archivos de su proyecto no encuentro algun codigo fuente. No es todo su proyecto Sr. Wilson que quiero ver, solo quiero saber como reproducir un archivo de mas de 1.8mb, a proposito trate de probar su programa en mi celular Huawei U1215 pero no funciono, me ha pasado con muchos programas, supongo que mi celular no es muy bueno.

Mi correo es: guitarhyde@gmail.com


Sr. Wilson el 21-08-2007 a las 19:20

Bueno, todo el código fuente está accesible mediante sourceforge, y puedes ver y navegar por el código fuente a través de este enlace directo:
http://rockola.cvs.sourceforge.net/viewvc/rockola/

ahí puedes ver todas los ficheros que utilizo.


Van Master el 21-08-2007 a las 21:10

Muchas gracias Sr. Wilson, ahorita estoy revisando el codigo, cuando termine le voy a dar una copia del programa que yo haga.


noe el 21-08-2007 a las 23:53

otra pregunta como le hago para que en el sdk de sony ericsson reprodusca la musica??


Sr. Wilson el 21-08-2007 a las 12:33

si no mal recuerdo, el SDK de sony ericsson tiene deshabilitada la reproducción de ficheros MP3 (cosas de licencias que deberían pagar para hacerlo), por lo que para las pruebas, utiliza ficheros WAV.

luego cuando tengas tu aplicación en el móvil, no tendrás ningún problema para reproducir los MP3.


Envía un Comentario
Nombre:
Email:
Web:
Comentario: