Giter Site home page Giter Site logo

yamil16 / reproductor-de-musica-android Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 600 KB

Este proyecto fue realizado para la optativa programación de dispositivos moviles de la facultad de ciencias exactas(UNICEN). Consite en un reproductor de musica para Android desarrollado en android studio que permite: Seleccionar y reproducir un álbum de los presentes en el dispositivo. Crear playlist personalizadas. Control básico de la reproducción desde la notificación. Widget con control básico de la reproducción. Obtener las letras de las canciones desde un sitio Web. Permite seguir reproduciendo en segundo plano.

Java 100.00%

reproductor-de-musica-android's Introduction

Reproductor de musica android

Introducción:

Se trata de una aplicación de reproducción de música para Androide que permite: 

Seleccionar y reproducir un álbum de los presentes en el dispositivo. 

Crear playlist personalizadas. 

Control básico de la reproducción desde la notificación. 

Widget con control básico de la reproducción. 

Obtener las letras de las canciones desde un sitio Web. 

Permite seguir reproduciendo en segundo plano. 

Desarrollo:

En primer lugar, se diseñó el logo de la aplicación por medio de una página de diseño de iconos, se obtuvo un diseño llamativo y juvenil relacionándolo con la música a través de los auriculares. El nombre de la aplicación se ideó a partir del mismo logo.
Al utilizar la aplicación, se carga por defecto todas las playlist del dispositivo y se puede visualizar fácilmente todos los álbumes como así también se puede crear una nueva lista de reproducción. Buscar los álbumes o las playlist es posible realizando una consulta a la base de datos de Android, mediante el siguiente comando: context.getContentResolver().query(uri,columnas,selección,null,orden), donde la uri es donde está la tabla de la BD, columnas son las columnas que se retornan por cada fila, selección especifica el criterio de selección para cada fila y orden especifica el orden que aparecen las filas en el cursor. Esa consulta debe ser adaptada al ListView, y se las adapta de manera diferente si es un álbum o una playlist. Si se desea crear una nueva lista de reproducción, se abre un AlertDialog con el propósito de escribir el nombre de la nueva lista de reproducción.

En caso de aceptar, se seleccionan las canciones que se desean añadir a la lista de reproducción, presionando sobre las diferentes canciones que se observan en el ListView. Se seleccionan las canciones para la lista de reproducción Playlist Personalizada.
Si se desea dejar de agregar canciones, se retorna con la flecha hacia atrás que nos lleva a la ventana inicial, donde podemos seleccionar la lista creada para reproducirla.
Una vez seleccionada la playlist se puede observar la reproducción de la misma. Si se dispone de internet, se puede acceder a ver la letra de la canción desde una página web que contiene una amplia base de datos de letras de canciones. Para este ejemplo la consulta se realizó de la siguiente manera: http://lyrics.wikia.com/wiki/Los_Cafres:Bastará

En caso de que el artista sea “unknown”, se pide que el nombre de la canción se componga del Artista y después del nombre de la canción, para poder realizar el matching en la base de datos.
Para nuestro ejemplo la canción en nuestro móvil fue guardada de la siguiente forma: Los Cafres- Bastará.mp3

Por último, podemos observar cómo se ejecuta el reproductor de música en segundo plano y como se puede controlar la reproducción mediante la barra de notificaciones con los botones Previus, Play/Pause y Next.

Resumen de las clases:

SeleccionMusicaPlayList: Es la clase que se encarga de mostrar todas las canciones del dispositivo y de agregar las canciones a la playlist creada.

MainActivity: Es la clase principal, que se corresponde con el menú inicial de la aplicación donde se muestran todas las playlist, álbumes, se crean nuevas playlist.

AdaptarListViewMusica: Esta clase se utiliza para adaptarse al listView y poder mostrar todos los álbumes del dispositivo.

AdaptarListViewPlaylist: Es similar a AdaptarListViewMusica, pero con la diferencia que muestra todas las playlist del sistema.

WidgetReproductorMusica: Su principal función es crear el widget y actualizar el sistema ante un evento del widget, como por ejemplo presionar el botón next del widget y reproducir la siguiente canción.

Cancion: Esta clase guarda todos los atributos principales que tiene una canción.

PlayList: Tiene todos los atributos para definir una playlist.

LocalServiceConnector: Es una clase privada de la clase ReproducirCanciones y se encarga de enlazar la actividad con el ServicioMusica, para poder enviar solicitudes, recibir respuesta e incluso establecer comunicación.

ReproducirCanciones: Esta clase se centra en la ventana de reproducir canciones, donde podemos controlar la reproducción de una canción mediante una comunicación con el ServicioMusica, cargar la letra de las canciones y volver al menú inicial.

ServicioMusica: Esta clase responde las solicitudes que llegan, cambiando la canción, pausando la reproducción, reanudando la reproducción, etc. También crea la barra de notificaciones, carga las canciones a reproducir.

ReproductorBinder: Es una clase privada del ServicioMusica, que se encarga de devolver el servicio.

reproductor-de-musica-android's People

Contributors

yamil16 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.