Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

O artigo mostra uma parcela pequena da API de mídia do Android utilizando dois exemplos. O primeiro é um aplicativo de streaming de mídia, que pode ser facilmente transformado em uma aplicação completa para rádios. O segundo exemplo mostra um álbum de fotos capturadas e persistidas pela própria aplicação. Este artigo pode ser utilizado por programadores iniciantes na tecnologia Android, que visam tornar mais atrativo suas aplicações a partir de recursos multimídias.


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

A grande maioria dos aplicativos, sejam eles Android ou outra plataforma, terá em algum ponto uma interação com o usuário através de mídias, sejam elas áudio, vídeo ou apenas imagens. Sendo assim, o conhecimento aqui reproduzido pode ser produzido em um número muito grande de casos.

Resumo DevMan:

Este artigo cria dois aplicativos, um para acessar o streaming de áudio de uma rádio e, o segundo, para capturar e armazenar um conjunto de fotos. Iremos trabalhar principalmente com a classe MediaPlayer, que permite tocar arquivos de mídias internos e externos e, criar um player de streaming de música. Além disso, também veremos como trabalhar com um importante conceito do Android, um Service.

Autores: Ricardo Ogliari e Robison Cris Brito

O uso de mídias nos aplicativos é extremamente comum, desde sinais de alertas em aplicativos convencionais até sua vital importância em jogos. Podemos encontrar desde simples toques polifônicos até mesmo sons em três dimensões, com diversos efeitos sonoros, mudando consideravelmente a percepção do usuário em relação ao aplicativo que ele está usando.

O uso da mídia também está sendo utilizado na entrada de dados. Além dos teclados convencionais, as telas touchscreen, já encontramos sites e aplicativos que requisitam que o usuário fale a informação que deseja inserir no software.

Para telefones celulares e smartphones a importância das mídias se torna ainda maior devido à atenção que o usuário pode dar ao aparelho. Por exemplo: o motorista está dirigindo pela auto-estrada quando recebe uma mensagem de SMS. Caso ele precise olhar para o visor do aparelho, estará deixando de prestar atenção onde mais importa, na estrada. Se a mensagem fosse lida de forma automática e reproduzida no sistema de som do próprio automóvel, o risco de um acidente diminuiria consideravelmente.

Outro ponto muito importante é na ajuda a deficientes visuais. Apesar da consciência em relação à usabilidade e acessibilidade ter aumentado nos últimos anos, ainda é pouco provável encontrarmos um aplicativo para celular ou smartphone que mostre duas informações na forma textual e oral.

Temos alguns poucos exemplos que podem ser citados aqui.

• LookTel: assistência a cegos e deficientes visuais. Aparelhos celulares são usados para reconhecer e identificar de maneira audível objetos e locais, de forma quase instantânea;

• SeeScan: possui o mesmo objetivo do anterior.

Mas, felizmente para nós programadores, todas as plataformas mobile de hoje apresentam APIs que nos permitem inserir e capturar áudio e vídeo em nossos aplicativos. Até mesmo algumas tecnologias um pouco mais antigas já permitiam isso, como é o caso do Java ME. Algumas delas mais atuais fornecem suporte inclusive a Text to Speech e Speech to Text. O Android não foge a regra.

A plataforma do Google fornece um conjunto de classes e métodos completos para trabalho com mídia.

Neste artigo vamos falar do suporte a áudio e vídeo dentro da plataforma do Google, além disso, também discutiremos como trabalhar com Text to Speech. Para facilitar o aprendizado, o texto acompanhará o desenvolvimento de dois aplicativos como provas de conceito.

Conhecendo o Android

A plataforma Android, criada por um consórcio de empresas lideradas pelo Google, fornece um sistema operacional, um ambiente de desenvolvimento completo para programadores e uma loja virtual com milhares de opções. Seu núcleo é baseado em Linux e a grande maioria das bibliotecas que compõe o Android é de código aberto.

O Android pode ser dividido em partes, como mostrado na Figura 1. No seu núcleo mais básico temos o kernel Linux. Além disso, os drivers que gerenciam todos os processos e fazem a ligação da parte de software com as partes de hardware que compõe o device. Logo acima teremos as bibliotecas (libraries), que permitem aos desenvolvedores acessarem um banco de dados relacional SQLIte, por exemplo. Ou ainda, criar interfaces gráficas complexas com OpenGL e SurfaceManager. O Android Runtime contém a máquina virtual Java, chamada no ambiente criado pelo Google de Dalvik. A camada de Application Framework é utilizada pelos aplicativos nativos do aparelho, como por terceiros que desejem criar software para a plataforma. Um ponto interessante do Android está no fato das aplicações terem o mesmo poder, a mesma importância dentro da arquitetura. Isso difere bastante do Java ME, onde, os nossos aplicativos eram tratados quase que como vírus pelo Symbian.

Figura 1. Arquitetura Android.

No final de 2008, o primeiro smartphone com Android foi lançado no mercado. O t-Mobile G1 chegou com a versão 16 (Donut) do sistema operacional. De lá para cá, não só o hardware dos aparelhos mudou significativamente, mas também as versões do Android. Veja na Tabela 1 as plataformas disponíveis até o momento da escrita deste artigo.

Platform Version

API Level

VERSION_CODE

Notes

Android 4.0

14

ICE_CREAM_SANDWICH

Platform Highlights

Android 3.2

13

HONEYCOMB_MR2

Android 3.1.x

12

HONEYCOMB_MR1

Platform Highlights

Android 3.0.x

11

HONEYCOMB

Platform Highlights

Android 2.3.4 Android 2.3.3

10

GINGERBREAD_MR1

Platform Highlights

Android 2.3.2 Android 2.3.1 Android 2.3

9

GINGERBREAD

Android 2.2.x

8

FROYO

Platform Highlights

Android 2.1.x

7

ECLAIR_MR1

...

Quer ler esse conteúdo completo? Tenha acesso completo