MobiPlayer: Desenvolvendo um player de vídeo Android

Veremos neste artigo o desenvolvimento de uma aplicação para reprodução de vídeos, utilizando os recursos de multimídia, interface e banco de dados providos pela plataforma Android.

Esse artigo faz parte da revista WebMobile edição 20. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler este artigo em PDF

Android

MobiPlayer

Desenvolvendo um player de vídeo Android

 

De que se trata o artigo:

Desenvolvimento de uma aplicação para reprodução de vídeos, utilizando os recursos de multimídia, interface e banco de dados providos pela plataforma Android.

Para que serve:

Desenvolver aplicações para reprodução de vídeos remotos (com streaming) nos formatos mais populares, fazendo bom uso das capacidades multimídia da plataforma Android.

Em que situação o tema é útil:

Quando se deseja fornecer recursos de vídeo remoto ao usuário de um dispositivo móvel que roda Android, de forma performática e amigável.

 

A plataforma Android possui grandes capacidades multimídia, as quais englobam a reprodução e gravação de recursos de áudio e vídeo, bem como o tratamento de imagens nos formatos mais populares. Neste artigo, vamos nos ater somente ao que diz respeito à reprodução de vídeos. Para isto, desenvolveremos um player passo a passo.

 

APIs de multimídia Android

A reprodução de recursos multimídia no Android é realizado através da classe android.media.MediaPlayer, que é capaz de reproduzir áudio e vídeo de qualquer fonte, seja ela um recurso da aplicação, do sistema de arquivos ou de uma rede (via URL).

No que diz respeito às capacidades de multimídia, o Android baseia-se no OpenCORE da PacketVideo, sendo que suas bibliotecas suportam a reprodução e gravação dos mais populares formatos de áudio e vídeo, bem como imagens estáticas, incluindo MPEG4, H.264, MP3, AAC, AMR, JPG, e PNG.

Infelizmente, no SDK M5, o suporte a áudio e vídeo on-line não dispõe das mesmas facilidades que arquivos de mídia locais, ou seja, se você estiver passando uma URL para um arquivo de mídia on-line, este arquivo deve ser do tipo .mp4 ou .3gp e poder ser baixado progressivamente.

 

Construindo um player de vídeo

Veremos aqui como desenvolver aplicações multimídia para o Android através de um player de vídeo on-line, o qual guarda um histórico dos vídeos assistidos e disponibiliza ao usuário uma seção de vídeos favoritos.

Esta aplicação deve, portanto, conectar-se a um servidor remoto, utilizar-se de streaming de vídeo (o qual deverá ser desenvolvido) e manter o vídeo em histórico com um screenshot para melhor identificação do vídeo pelo usuário em momento futuro.

Antes de começarmos a discutir a aplicação, vale lembrar sobre o conceito de Atividade no Android: uma Atividade é algo que o usuário pode fazer e geralmente é uma única tela. Atividades são implementadas como classes que estendem Activity, exibindo uma interface para o usuário, composta por Views (elementos de interface).

Nosso player pode então ser divido em quatro atividades: a primeira, destinada a exibir os possíveis caminhos do usuário dentro da aplicação, possibilitando solicitar a visualização de um novo vídeo, acessar os favoritos ou ainda selecionar um vídeo do histórico; a segunda, capaz de cadastrar um vídeo; a terceira capaz de reproduzi-lo; a quarta,  responsável pela seção de favoritos.

O SDK nos disponibiliza duas maneiras para tratar áudio e vídeo. A mais fácil delas é fazer uso da classe android.widget.VideoView. Esta exibe um arquivo de vídeo, podendo carregar imagens de várias fontes. Ainda provê o gerenciamento computacional do tamanho do vídeo em tela, o que torna possível utilizá-lo com qualquer gerenciador de layout (além de fornecer várias opções de visualização).

No entanto, além de exibir o vídeo, queremos obter um screenshot, ou seja, escolher um frame do vídeo e exportar para uma imagem no sistema de arquivos. Isto implica na escolha da segunda maneira: o MediaPlayer. Este, além de permitir operações sobre a mídia, disponibiliza funcionalidades de playback e callback para bufferização via rede.

Escolhida a forma como vamos trabalhar, basta saber que devemos ainda organizar os dados relativos aos vídeos assistidos em histórico e favoritos. Para tanto, vamos utilizar fachadas que cuidarão do manejo das nossas entidades - vídeos e favoritos (o acesso ao banco de dados se dá pelo SQLite e não será discutido aqui, visto que não é o escopo do artigo). " [...] continue lendo...

Artigos relacionados