"FONT-SIZE: 10pt; FONT-FAMILY: Verdana">Java

TV digital – Desenvolvendo uma aplicação utilizando a plataforma Java TV

 

 

LEAD: BOX

De que se trata o artigo:

O artigo apresenta como funciona a TV digital, como ela pode ser um novo ramo profissional para nós desenvolvedores de software e explica passo a passo como desenvolver uma aplicação simples utilizando a API JavaTV e o emulador XLetView.

Para que serve:

Esse artigo tem por objetivo apresentar e ensinar para os desenvolvedores de software como desenvolver uma aplicação simples utilizando a API JavaTV e o emulador XLetView.

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

Aprender a desenvolver uma aplicação para TV digital utilizando a API JavaTV e o emulador XLetView. É válido para desenvolvedores que buscam novas áreas profissionais, pois a TV digital é uma realidade e para que exista a tão desejada interatividade são necessários os softwares, que serão desenvolvidos por nós. 

A TV digital já é uma realidade. As possibilidades de entretenimento, aprendizado e interatividade fazem com que o mercado exija um profissional para tornar real essa interatividade, entre a TV e o telespectador. Com tal visão, o mercado para desenvolvedores de software tende a aumentar, pois essa nova tecnologia nos fornece uma nova plataforma de desenvolvimento, que é a Java TV.

O objetivo deste artigo é apresentar uma aplicação desenvolvida na plataforma Java TV. No entanto, inicialmente iremos entender como funciona a tecnologia da TV digital. Imagens, sons e dados são digitalizados, ou seja, transformados em bits. Os sinais continuam sendo transmitidos pelo ar, diretamente de uma torre para a casa do usuário. Inicialmente haverá a necessidade de um conversor, que é o set-top Box, cuja função é converter o sinal digital a ser transmitido pelas emissoras para o formato analógico das televisões atuais e também armazenar as aplicações a serem executadas. Passaremos ainda pelos desafios da TV digital até ela ser implantada, suas tendências e as possíveis mudanças causadas com sua implantação.

A partir disso, iremos apresentar como funciona a plataforma Java TV, que é utilizada para desenvolvimento de aplicações para TV digital. Por fim, mostraremos passo a passo o desenvolvimento de uma aplicação simples para TV digital utilizando a plataforma Java TV.

 

Desafios da TV digital

A primeira transmissão da TV digital foi no dia 2 de dezembro de 2007, mas ainda existem muitos desafios pela frente. Um dos maiores desafios da TV digital é a interatividade, que engloba o desenvolvimento de algumas aplicações ainda inexistentes para o mundo real, mas que podem ser executadas na TV ou em um simulador (como o framework Java TV que será explicado no decorrer do artigo). Outro desafio é a multi-programação, que permite que a mesma emissora transmita até quatro programas simultaneamente.

A migração para os aparelhos digitais será um processo de longo prazo, pois as transmissões digitais estão ocorrendo inicialmente em algumas capitais brasileiras como São Paulo, Rio de Janeiro, Brasília, Belo Horizonte, Curitiba e Porto Alegre, e depois tendem a ser implantadas nas demais cidades. Além disso, o preço dos conversores ainda é elevado. Com o tempo, provavelmente, esses desafios serão minimizados.

 

As mudanças devidas a aplicações para TV digital

Uma das mudanças é que os desenvolvedores de softwares terão um novo ramo profissional, ou seja, poderão investir em uma nova área: a de aplicativos que serão executados nos aparelhos receptores de TV digital.

Temos aplicações que podem funcionar de duas maneiras: localmente ou em comunicação com a emissora. No primeiro caso, o usuário simplesmente recebe o aplicativo e executa na sua TV – sem enviar dados de volta. Nesse caso, podem ser incluídos, por exemplo, os guias de programação, notícias e estatísticas sobre jogos esportivos. No segundo caso, as aplicações de interatividade remota requerem um canal de comunicação com a emissora (o chamado canal de retorno), levam as possibilidades a um horizonte ainda mais amplo, que inclui respostas a enquetes, consultas a bases de dados, compra pela TV, entre muitas outras possibilidades.

 

Java TV

A linguagem de programação Java designou uma plataforma para desenvolvimento de aplicações para TV digital, que é chamada de Java TV. Para isso, foi criado um emulador para simular uma TV digital em um desktop chamado de XLetView. Esse emulador é baseado na midleware MHP (Multimedia Home Plataform). Ele fornece uma maneira fácil e rápida de testar as aplicações, chamadas de Xlets, semelhantes aos Applets e MIDlets, e têm um método a mais, que é o initXlet.

Os Xlets possuem vários estados: uma vez carregada a classe no aparelho, ela está no estado InitXlet (inicializa o Xlet e muda o estado deste para pausado, esse método é chamado apenas uma vez), a partir desse momento, a aplicação pode ser executada, entrando no estado Started (o estado do Xlet é modificado para ativo e sua execução inicia), podendo posteriormente ser pausada (Paused, estado em que a aplicação Xlet pode ser futuramente reiniciada) ou destruída (Destroyed, onde termina o ciclo de vida). Semelhante ao que ocorre com applets e MIDlets, as Xlets também fornecem AWT definidos pelo perfil J2ME em que é executada, fornecendo um container para a comunicação com o componente pai.

A API do Java TV é composta pelos pacotes abaixo:

·                            javax.tv.xlet: fornece os métodos para gerenciamento do ciclo de vida da Xlet controlados pelo gerenciador de programas;

·                            javax.tv.graphics: habilita simples composições e fornece um container para construção de interfaces com componentes AWT;

·                            javax.tv.locator: fornece acesso aos dados e recursos endereçados ao receptor de TV digital;

·                            javax.tv.media: define um controle e eventos para gerenciamento de conteúdos visuais e de áudio;

·                            javax.tv.net: fornece acesso aos datagramas IP transmitidos pelo stream de broadcast;

·                            javax.tv.service: fornece acesso ao banco de dados do service information (SI) e APIs para seus sub-pacotes;

·                            javax.tv.util: suporta a criação e gerenciamento de eventos de tempo.

 

Descrição da aplicação a ser desenvolvida

Para mostrarmos como funciona o desenvolvimento de uma aplicação para TV digital, desenvolveremos uma aplicação em um ambiente onde estará instalado o Java Development Kit 1.6.0_06 (http://java.sun.com/javase/downloads/index.jsp), o XLetView 0.3.6 que é o emulador da aplicação (http://sourceforge.net/projects/xletview) e o javatv-1_0-spec (http://java.sun.com/products/javatv/). Salve o XLetView dentro da pasta onde está o Java Development Kit 1.6.0_06, provavelmente será no diretório C:/Java. Assim, a árvore diretório ficará: C:\java\tvdigital. Em seguida, salve no mesmo diretório o JavaTV.

O software desenvolvido neste artigo representa uma votação pela TV digital em que o telespectador através do controle remoto da televisão decide e vota entre as opções, seguindo aquele mesmo raciocínio do programa de TV “Você Decide”. Nele, os telespectadores decidiam o final da história do programa por telefone. Agora isso será pelo controle remoto da televisão. Assim o software deixa a escolha para os telespectadores decidirem e interagirem com a programação em tempo real. Seguindo a linha de raciocínio do programa de TV “Você Decide”, o programa não apresentará o resultado da votação, pois o final do programa é surpresa. O telespectador só saberá o final assistindo o programa até o fim. Então vamos ao que interessa, o desenvolvimento da aplicação.

 

Construindo a aplicação para TV Digital

A aplicação a ser construída será dividida em oito classes para um maior entendimento. As classes que a compõem são: MenuPrincipal, VoceDecideXlet, MeuBotao, Padrao, Votar, Resultado, Final e Sair. Falaremos qual a funcionalidade de cada uma das classes a seguir:

·                     MenuPrincipal: esta classe contém a construção da cena(tela), dos que compõem a tela: Votar, Enquete, Resultados e Sair, assim como toda sua movimentação e desabilitação através da função setFocusTraversal, cuja função é movimentar as setas cima, baixo, esquerda e direita do controle remoto da TV.

·                     VoceDecideXlet: esta classe contém os métodos que controlam os estados e o ciclo de vida da XLet, que foram citados anteriormente neste artigo, que são: initXlet, startXlet, pauseXlet e o  ...

Quer ler esse conteúdo completo? Tenha acesso completo