Gerenciamento e Reprodução de Mídias a partir do Desenvolvimento de um Mp3 Player André Luiz de Farias Mezzari1, Danilo Preve Menegaz1, Leandro Colombo da Silva1 , Cristiane Raquel Woszezenki2, Priscyla Waleska Targino de Azevedo Simões2 1 Acadêmico do curso de Ciência da Computação – Unidade Acadêmica de Ciências, Engenharias e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC) – Criciúma, SC - Brasil 2 Professora do curso de Ciência da Computação - Unidade Acadêmica de Ciências, Engenharias e Tecnologias - Universidade do Extremo Sul Catarinense (UNESC) – Criciúma, SC - Brasil {biver_, danilomenegaz, lcscri}@hotmail.com, {cristianerw, pri}@unesc.net Resumo. Este artigo apresenta um trabalho interdisciplinar a partir de conceitos de estrutura de dados e programação orientada a objetos. Seu objetivo buscou desenvolver um aplicativo voltado ao gerenciamento e reprodução de músicas em formato mp3. Foi utilizada a estrutura lista, implementada em Java, a partir da Collection ArrayList. As classes definidas são: Player, controlador e audio. Foi desenvolvida uma interface gráfica em Java a partir do ambiente NetBeans IDE 6.1 e, com o desenvolvimento desta pesquisa pode-se correlacionar os assuntos e conhecimentos pertinentes as duas disciplinas envolvidas, assim como aprofundar a lógica de programação orientada a objetos apresentada. Palavras-chave: Estrutura de dados; Programação orientada a objetos; Coleções do Java; Mp3 Player. 1. Introdução Com o avanço da internet e dos meios de comunicação digitais, se tornou cada vez mais comum armazenar e escutar músicas no computador. O formato que acabou popularizando as músicas foi o mp3. Um aplicativo para reprodução de músicas neste formato não precisa ser muito complexo, afinal o que importa para o usuário é apenas que a música seja reproduzida. Baseado neste conceito, procurou-se neste trabalho desenvolver um aplicativo simples e ao mesmo tempo funcional, baseado nos conceitos apresentados durante a terceira fase do curso de Ciência da Computação da UNESC. Conhecendo os tipos de estrutura de dados e como podem ser aplicadas, iniciouse uma pesquisa, e como fundamentação teórica foram utilizados os seguintes conceitos: listas lineares, pilhas, filas, programação orientada a objetos e linguagem Java. Tendo em vista estes conceitos o objetivo deste trabalho é gerenciar músicas em listas de reprodução, permitindo ao usuário organizar e reproduzir músicas em formato mp3. 1.1. Estruturas de dados Durante a execução de qualquer programa computacional existem dados que são manipulados, que podem ser de vários tipos, e são identificados e indexados pelas denominadas variáveis. A estrutura de dados consiste de técnicas para manipulação, armazenamento, organização e representação dos dados necessários à execução dos programas, e segundo Preiss (2000, p.59), “É importante ressaltar que não consideramos o vetor e a lista encadeada como TADs, mas como alternativa para a implementação dos TADs”. Segundo Moraes (2001), a lista linear é uma forma de organização dos dados para uma melhor manipulação dos mesmos. Nesta estrutura tem-se um início (primeiro elemento) e um final (último elemento). Dentre as estruturas de dados mais utilizadas, tem-se as listas encadeadas e as listas com disciplina de acesso. A lista encadeada é uma coleção linear (uma seqüência) de objetos autoreferenciais de classe, chamados nós, conectados por links de referência, daí o termo encadeada, cada um referenciando outro da lista de várias formas dependendo de sua organização, formando uma cadeia de elementos que armazena os dados. Segundo Moraes (2001, p.107) “Uma lista ligada sem nós é uma lista nula ou vazia”. Nessa situação, o ponteiro que aponta para o início da lista é um valor nulo. 1.2. Linguagem Java Em 1991, a Sun Microsystems financiou uma pesquisa cooperativa interna com o codinome “green”. O projeto resultou no desenvolvimento de uma linguagem de programação baseada em C e C++, que seu criador James Gosling, chamou de OAK em homenagem a uma árvore que dava para a janela do seu escritório nesta empresa. Descobriu-se mais tarde que já havia uma linguagem denominada OAK. Assim, quando a equipe da Sun visitou uma cafeteria local, o nome Java (cidade de origem de um tipo de café importado) foi sugerido e se tornou oficial [Deitel e Deitel 2001]. Em 1995, a Sun anunciou o Java formalmente em uma conferência, e hoje em dia é utilizado para criar páginas de internet com conteúdo interativo e dinâmico, desenvolver aplicativos corporativos de larga escala, sistemas para dispositivos móveis, entre outros. Esta linguagem trata as estruturas de dados a partir das denominadas Collections (Coleções), que são estruturas prontas, que podem ser manipuladas pelo programador, através de códigos simples, não necessitando de uma manipulação complexa desses dados, provendo uma facilidade maior na manipulação dos dados pelo programador [Deitel e Deitel 2001]. 1.3. Estruturas de dados orientada a objetos em Java O Java disponibiliza coleções para manipulação dos dados, oferecendo ao programador acesso à estruturas de dados pré-estabelecidas. Segundo Deitel e Deitel (2001), a estrutura de coleções em Java fornece componentes reutilizáveis prontos para trabalhar; assim, não é necessário escrever suas próprias classes de coleção. A classe ArrayList, é uma implementação da interface List e seus objetos se comportam como arrays redimensionáveis e permitem a inserção de todos os tipos de dados, incluindo o valor null [Deitel e Deitel 2001]. 2. Estudo de caso Para o estudo de caso deste trabalho interdisciplinar definiu-se uma aplicação voltada ao gerenciamento de arquivos de áudio no formato mp3, com as funções básicas de um Mp3 Player padrão, baseado em conceitos de estrutura de dados e orientação a objetos. Nesse Mp3 Player é possível a criação de listas para a reprodução de músicas, além das funções de reprodução, parada, avanço e retrocesso nas músicas e entre as músicas (na lista de reprodução), e alteração do volume de reprodução. O aplicativo foi desenvolvido em Java no ambiente NetBeans IDE 6.1, e para a implementação das funcionalidades de gerenciamento de listas de reprodução, pesquisou-se qual seria o formato padrão para esta finalidade em players de música comerciais, e assim decidiu-se então pelo padrão “m3u”. Com o uso desse formato é possível salvar listas de reprodução utilizáveis em qualquer outro player comercial, assim como reproduzir seu conteúdo em outros players. As classes utilizadas e ilustradas na Figura 1 foram: Player, que executa as funções principais do aplicativo; Áudio, que manipula os endereços das músicas para reprodução; e, Controlador, que manipula as listas de reprodução e execução dos arquivos. Figura 1. Diagrama de Classes A estrutura de dados lista foi utilizada a partir da Collection ArrayList do Java para manipular as listas de reprodução. O aplicativo ilustrado na Figura 2 oferece as opções de: selecionar uma música individualmente; adicionar e remover músicas da playlist; reproduzir, parar, pausar, avançar e retroceder; e, além disso é possível salvar as listas de reprodução em formato “m3u”. A Figura 2 mostra o Ainda na figura 2 pode-se notar o programa em execução com todas as funções disponíveis na interface gráficas, além da barra de ferramentas padrão de um Mp3 Player. Figura 2. Interface do aplicativo 3. Conclusão A partir do desenvolvimento deste artigo pode-se concluir como as estruturas de dados e a programação orientada a objetos são de fundamental importância no desenvolvimento de softwares. Até mesmo um Mp3 Player necessita de tratamento de dados, que são melhor representados pelas coleções orientadas a objetos de estruturas de dados do Java. Assim, esta pesquisa interdisciplinar foi de fundamental importância para a compreensão de conceitos de estrutura de dados e programação orientada a objetos na terceira fase do curso de Ciência da Computação da UNESC, podendo-se compreender melhor como estes conceitos se integram e interagem em uma aplicação prática desenvolvida a partir dos conhecimentos adquiridos em sala de aula. Pode-se destacar ainda que o conteúdo foi aprofundado desenvolvendo-se inclusive uma interface gráfica, assunto geralmente apresentado na 5ª fase do curso. Neste sentido, o produto final do trabalho foi representado por um Mp3 Player, atualmente em uso pelos acadêmicos da terceira fase, que reproduz músicas além de gerenciar listas para reprodução. Referências DEITEL, H. M.; DEITEL, P. J.. Java: Como programar. Tradução: Edson Furnankizwicz. 3. ed.. Porto Alegre: Bookman, 2001. MORAES, Celso Roberto. Estrutura de dados e algoritmos – uma abordagem didática. São Paulo: Berkeley, 2001. PREISS, Bruno R.. Estruturas de dados e algoritmos: Padrões e projetos orientados a objetos com Java. Tradução: Elizabeth Ferreira. Rio de Janeiro: Campus, 2000.