top of page

REPRODUCTOR DG PLAYER

2016

DESCRIPCIÓN DE DG PLAYER

DG Player es una aplicación informática que permite a diversos usuarios la reproducción de canciones que estén almacenadas en uno o varios directorios previamente especificados.

Asimismo, DG Player permite registrar nuevos usuarios con la información básica necesaria: nombre de usuario, contraseña, dirección de correo electrónico y los datos de nacimiento. Una vez cumplido este proceso, el usuario podrá iniciar sesión tantas veces como lo desee, con las canciones que se hayan añadido en sesiones anteriores, siempre y cuando estas no estén cambiadas de directorio inicial o se hayan eliminado.

 

Por otro lado, DG Player permite la personalización de las interfaces gráficas de la aplicación a través de una paleta de colores, que tiene como objetivo dar a escoger al usuario de esa sesión, el color que se desea aplicar como tema para dichas interfaces.

PROGRAMACIÓN DEL REPRODUCTOR

DG Player fue programado bajo un paradigma orientado a objetos y bajo un paradigma funcional en el lenguaje de programación Java y con el estilo de la programación por capas. Estas capas son:

Capa de datos:

Esta capa fue la encargada de cargar, almacenar y actualizar la información de cada uno de los usuarios registrados en la base de datos, los detalles de personalización de colores de la interfaz gráfica y la lista de canciones de dichos usuarios.

Lógica de negocios:

Capa encargada de ejecutar las peticiones de los usuarios y comunicar a la capa de presentación con la capa de datos. Esta capa tiene las funciones de controlar los procesos de inicio, registro y configuración de usuarios y la función de controlar las acciones sobre una canción determinada: reproducir, pausar, reanudar y detener.

Capa de presentación:

Como su nombre lo dice, esta es la capa que se encargó de presentar al usuario los formularios de registro, formulario de inicio de sesión, y la plataforma musical, que es aquella que contiene los datos de las canciones cargadas por el usuario, así como las acciones que se pueden realizar sobre esas canciones.

ESTRUCTURAS DE DATOS

Para la construcción de este sistema no se implementaron muchas estructuras de datos, ya que la mayoría de datos se manejan a través de una memoria secundaria del computador (bases de datos), pero, de todas formas, fue necesario disponer de una estructura que nos permitiese llevar un listado de los usuarios registrados y de un listado de canciones, para poder ser tratadas durante la ejecución de la aplicación. Para este propósito se empleó la estructura dinámica ArrayList que implementa la interfaz List de las “API Collections” de Java.

ESTRUCTURAS DE ARCHIVOS

La información de la aplicación DG Player es almacenada en una base de datos tipo archivo de texto, donde se registra la información básica del usuario, sus configuraciones y las canciones definidas por usuario. En este archivo cada línea corresponde a un usuario diferente, dicho de otra manera, la base de datos está conformada por un solo archivo de texto y no por varios archivos según el número de usuarios. Para estos propósitos, se implementaron varias clases de las librerías de Java para la lectura y escritura de archivos, tales como: File, FileReader, PrintWriter, entre otros.

Con respecto a las canciones, se implementó la librería mp3agic para obtener los metadatos de las canciones y posteriormente cargarlos en una estructura de datos para manejar esa información a través de la memoria del computador. Por otro lado, algunas de las canciones cargadas por el usuario, poseen una imagen que representan el diseño del álbum al que pertenecen dichas canciones. Cabe destacar, que estas imágenes son parte de los metadatos del archivo, esto implica que no se puede manejar el archivo imagen directamente, para ello, fue necesario obtener la imagen por medio de la librería mp3agic y luego traspasarla a un nuevo directorio con la librería RandomAccesFile en formato PNG.

LIBRERÍAS IMPLEMENTADAS

mp3agic

Librería de Java que permite la lectura y manipulación de TAGs (Información de una canción) sobre un archivo MP3.

Más información de la librería: https://github.com/mpatric/mp3agic

jlGui/basicplayer

BasicPlayer es una librería que contiene un conjunto de clases que permite realizar acciones sobre una canción determinada, tales como: reproducir, pausar, reanudar, detener, etc.

Enlace del API: http://www.javazoom.net/index.shtml

COMENTARIOS, CONCLUSIONES Y RECOMENDACIONES

La construcción de DG Player, permitió académicamente establecer las ventajas y desventajas de las estructuras de datos y las estructuras de archivos y como optar por una de ellas. Por un lado, las estructuras de datos es útil implementarlas, siempre y cuando se requiera realizar operaciones en memoria, por ejemplo, en el reproductor es necesario tener la lista de canciones de un usuario cargada en un ArrayList para poder acceder a ellas rápidamente y, poder manejar las canciones dentro de la tabla contenida en la ventana de la aplicación. La rapidez de acceso es una de las ventajas que definen a las estructuras de datos, pero el inconveniente se da cuando los datos necesitan ser recuperados a futuro, para ello, fue necesario hacer uso de las estructuras de archivos, y en este caso, se implementó una base de datos tipo archivo de texto para guardar los registros de los usuarios junto con sus respectivas canciones, con el inconveniente de que el acceso a este tipo de estructuras es más demorado y en algunos casos más difícil de implementar, ya que con estos archivos de texto, cada campo va separado por un punto y coma, y al momento de guardar un registro sobre otro registro, este va separado por comas:

eduardo_jara;edu1324;Mexico;1987;120,23,0;C:\Musica\cancion1.mp3;

Aunque esto parezca funcionar, el problema con este tipo de base de datos, es que se deben implementar algoritmos propios para identificar qué parte de la línea del archivo corresponde a cada campo en un registro. Dentro de las propuestas planteadas para la realización de DG Player, se propuso que cada usuario pudiese crear tantas listas de reproducción como ese usuario quisiese, pero dado estos inconvenientes con la identificación de los campos de un registro en este tipo de base de datos, este propósito no se pudo cumplir, pero, ¿Cómo podríamos solucionar esto? y ¿Cuándo podemos utilizar estos archivos? Pues bien, si en un futuro se llega a utilizar bases de datos de esta especie, es recomendable implementarlas siempre y cuando las aplicaciones a desarrollar no tengan una dependencia fuerte con los datos que se manejen ahí, ya que estos tipos de archivos pueden ser consultados y adulterados por seres humanos. Hoy en día, disponemos de varios tipos de bases de datos, tales como SQL que nos permiten acceder de una forma menos complicada en lo que respecta al código, a los datos y a la seguridad. Por otro lado, Java y algunos lenguajes permiten la serialización de objetos, permitiendo guardar la información en un archivo .bat, donde los datos se mantienen seguros ya que no pueden ser leídos por entes humanos. Este último, hubiese sido el ideal para el manejo de las bases de datos en este proyecto.

NEWSFEED

24 Nov 2023

NEWS ARTICLE_

I'm a paragraph. Click here to add your own text and edit me. Let your users get to know you.

24 Nov 2023

NEWS ARTICLE_

I'm a paragraph. Click here to add your own text and edit me. I’m a great place for you to tell a story and let your users.

ENLACES DE INTERES

DG - 2016

PAGINA DE INICIO

Espacio donde encontraras los vídeos informativos del funcionamiento y del desarrollo de DG Player.

DG - 2016

DESCARGAR DOCUMENTACIÓN

DG - 2016

FORMULARIO DE CONTACTO

Espacio donde podrás contactarte con el constructor del software para adquirir una copia del código fuente de DG Player.

DG PLAYER

© 2016 por Daniel Gomez Jaramillo. Universidad de Cuenca

bottom of page