Agustín Ventura

Ingeniería de Software

CrankPlay, binding al servicio

El siguiente paso en el desarrollo de JustPlay resulta bastante obvio, ligar el MediaPlayer con el MediaService, o lo que es lo mismo, hacer un bind. Para no perderme, he hecho un pequeño diagrama de interacción entre MediaPlayer y MediaService. En él se aprecia que aparte de los métodos de negocio necesarios (denotados por una línea discontínua), todavía me faltan por implementar dos métodos del ciclo de vida: el bind y el unbind, que son precisamente los que me permiten establecer una comunicación bidireccional con el MediaService para indicar acciones y realizar y obtener resultados.

JustPlay, explorador de archivos

Uno de mis requisitos en JustPlay (de hecho, el fundamental), es poder reproducir a partir de archivos sueltos o directorios. Por tanto, necesitaré un explorador de archivos, aunque sea muy básico, que permita ver los archivos en la memoria del dispositivo y añadirlos a una lista de reproducción. Gráficamente, la interacción entre las actividades sería así. En general la devolución del parámetro no tendrá mayor problema, ya que se puede hacer a través del intent de vuelta.

CrankPlay, arquitectura

Bueno, ya va siendo hora de empezar el trabajo en JustPlay. Después de mucho documentarme sobre Activities, Services y Threads, creo que tengo una aproximación bastante buena a la arquitectura que voy a intentar implementar. Introducción Un requisito fundamental es que la aplicación consuma los mínimos recursos posibles, con lo cual cabría pensar que se puede implementar mediante una Activity normal y corriente. Esto es un error, una Activity tiene un ciclo de vida determinado y cabe suponer (aunque no he hecho la prueba) que en cuanto pasara al estado “Paused”, se terminaría la reproducción de música.

CrankPlay, controles de reproducción

Última parte del tutorial que sigo para el CrankPlay, MusicDroid, ahora voy a añadir los controles básicos de reproducción. Esta parte se me antoja que no me será de mucha utilidad, ya que es bastante dependiente del diseño de la aplicación, pero que demonios… Controles de Reproducción El objetivo de esta parte es añadir los controles de reproducción a la aplicación. Estos se mostrarán como una capa semitransparente sobre la lista de canciones.

CrankPlay, Service para reproducir sonido.

Siguiendo la segunda parte de MusicDroid, voy a hacer un Service (servicio) para reproducir la música. Para lo cual necesito primero definir claramente que es un Service. Según la documentación oficial de Android, un Service es… bueno, es una chapa, vaya que un Service es un proceso en segundo plano sin interfaz de usuario y con el cual puede comunicarse cualquier otro componente o artefacto que viva en el ecosistema. La parte interesante es que esta comunicación es asíncrona y se hace por paso de mensajes (como todo en Android), así que cuidado con esta parte.