You are on page 1of 92

JOSIMAR FERREIRA GUILHERME

WELLINGTON CÉSAR GOMARIN

DESENVOLVIMENTO DE UM APLICATIVO PARA


TV DIGITAL USANDO AS BIBLIOTECAS DE JAVATV

FRANCA
2009
JOSIMAR FERREIRA GUILHERME
WELLINGTON CÉSAR GOMARIN

DESENVOLVIMENTO DE UM APLICATIVO PARA


TV DIGITAL USANDO AS BIBLIOTECAS DE JAVATV

Trabalho de Conclusão de Curso apresentado


como exigência parcial, para obtenção do grau
no curso de Ciência da Computação da
Universidade de Franca.

Orientador: Fernando Orsi


Coorientador: Hemerson da Silva Calabreze

FRANCA
2009
Catalogação na fonte – Biblioteca Central da Universidade de Franca

Guilherme, Josimar Ferreira


G974d Desenvolvimento de um Aplicativo para TV Digital usando as bibliotecas
JavaTV / Josimar Ferreira Guilherme, Wellington César Gomarin ; orientador:
Fernando Orsi, coorientador: Hemerson Calabreze. – 2009
90 f. : 30 cm.

Trabalho de Conclusão de Curso. – Bacharel em Ciência da


Computação

1. Computação – TV Digital. 2. TV Digital – Interatividade. 3. TV Digital


(aplicativo) – JavaTV (bibliotecas). I. Gomarin, Wellington César. II.
Universidade de Franca. III. Título.

CDU – 681.3.06:621.397.27
JOSIMAR FERREIRA GUILHERME
WELLINGTON CÉSAR GOMARIN

DESENVOLVIMENTO DE UM APLICATIVO PARA


TV DIGITAL USANDO AS BIBLIOTECAS DE JAVATV

Orientador:____________________________________________________
Nome: Prof. Fernando Orsi
Instituição: Universidade de Franca

Coorientador:_________________________________________________
Nome: Prof. Hemerson da Silva Calabreze
Instituição: Universidade de Franca

Examinador (a):________________________________________________
Nome: Eder de Oliveira Cabral
Instituição: Universidade de Franca

Examinador (a):________________________________________________
Nome: Cláudia Vicci Amadeu
Instituição: Universidade de Franca

Franca, 09/11/2009.
DEDICAMOS este projeto aos nossos pais e familiares que sempre
nos apoiaram em nossos estudos, pela educação e ensinamentos que
nos foi proporcionado fazendo com que alcançássemos uma estrutura
necessária para atingir nossos objetivos.
AGRADECEMOS primeiramente a Deus, que nos deu força
necessária para chegarmos até aqui, aos nossos orientadores
Fernando Orsi e Hemerson da Silva Calabreze, ao professor Fabiano
Magrin pela sugestão do projeto e aos demais professores e amigos
que sempre nos apoiaram durante toda a realização deste projeto.
RESUMO

GUILHERME, Josimar Ferreira; GOMARIN, Wellington César. Desenvolvimento de um


Aplicativo para TV Digital usando as bibliotecas JavaTV. 2009. Trabalho de Conclusão de
Curso (Graduação em Ciência da Computação) – Universidade de Franca, Franca.

O objetivo do projeto é criar um aplicativo para TV Digital que proporcione ao telespectador


a interatividade com a programação, facilitando a escolha do que assistirá, não dependendo da
programação contínua da TV atual, fazendo tudo de maneira mais fácil utilizando apenas o
controle remoto. O projeto também mostra o impacto que a TV Digital irá causar nos hábitos
das pessoas, transformando, por exemplo, as maneiras de votar, comprar, viajar e acessar
informações bancárias. O foco do Aplicativo desenvolvido foi na disponibilização de vídeos
para serem assistidos em tempo real ou agendados pelo telespectador em uma determinada
data e horário, e também fornecer informações sobre os vídeos que foram disponibilizados. A
linguagem Java, por se tratar de uma linguagem multiplataforma, foi utilizada para o
desenvolvimento do aplicativo, com a incorporação de bibliotecas como JavaTV, HAVi e
DAVIC. Para simular o ambiente de TV Digital foi usado o emulador XleTView no padrão
MHP (Multimedia Home Platform). O estudo foi feito através de pesquisas em livros, artigos,
em Fóruns e sites oficiais na internet, monografias e revistas. O aplicativo pode servir de base
para projetos futuros que necessitem de manipulação de arquivos de vídeos na interatividade
com a TV Digital.

Palavras – chave: TV Digital, interatividade, JavaTV, XleTView.


ABSTRACT

GUILHERME, Josimar Ferreira; GOMARIN, Wellington César. Development of an


application for TV Digital using the JavaTV libraries. 2009. Trabalho de Conclusão de Curso
(Graduação em Ciência da Computação) – Universidade de Franca, Franca.

The aim of this project is create an application for Digital TV that provides the viewer the
interactivity with programming, facilitating the choice of who will watch, not depending on
the continuous programming on TV, making it easier using only the remote control. The
project also shows the impact that digital TV will cause on people habits, transforming, for
example, ways to vote, buy, travel and access banking information. The focus of the
application developed was in the availability of videos to watched in real time or scheduled by
the viewer on a determined date and time, and also provide information about the videos that
were available. The Java language, because it is a language platform, was used for application
development, with the incorporation of libraries as Java TV, HAVi and DAVIC. To simulate
the environment of Digital TV has been used the emulator XleTView in standard MHP
(Multimedia Home Platform). The study was done through researching books, articles,
forums and official sites on the Internet, monographs and journals. The application can work
as a basis for future projects that require manipulation of video files on interactivity with
Digital TV.

Key-words: Digital TV, interactivity, JavaTV, XleTView.


LISTA DE FIGURAS

Figura 1 - Cronograma de implantação da TV Digital no Brasil 19

Figura 2 - Comparação entre o sinal analógico e o digital 21

Figura 3 - Comparação entre as resoluções de tela para televisão 22

Figura 4 - TV sendo exibida em um celular 23

Figura 5 - Exemplo de Interatividade 25

Figura 6 - Componentes que definem um sistema de TV Digital 26

Figura 7 - Modelo de um set-top Box 27

Figura 8 - Blocos na forma de caixa preta definindo um sistema de televisão digital 28

Figura 9 - Ciclo de vida de um Xlet 35

Figura 10 - Interface do XleTView 37

Figura 11 - Camadas do dispositivo do modelo gráfico do MHP 39

Figura 12 - Diagrama de Casos de Uso 53

Figura 13 - Diagrama de Classes: Aplicativo “Arquivo TV” 55

Figura 14 - Diagrama de Classes: Sistema Administrativo 57


Figura 15 - Diagrama de Sequência: Agendar Vídeo 58

Figura 16 - Diagrama de Sequência: Encerrar Aplicação 59

Figura 17 - Funcionamento em um ambiente real 61

Figura 18 - Resultado do Teste da Classe Aplicativo com JUnit 62

Figura 19 - Resultado da iniciação do aplicativo pelo XleTView 63

Figura 20 - Resultado do Teste da verificação do agendamento com JUnit 64

Figura 21 - Agendamento sendo iniciado 66

Figura 22 - Tela com as informações do vídeo exibido 66


LISTA DE SIGLAS

8VSB Vestigial Sideband Modulation

API Application Programming Interface

ARIB Association of Radio Industries and Businesses

ATSC Advanced Television System Comittee

AWT Abstract Window Toolkit

COFDM Coded Orthogonal Frequency-Division Multiplexing

CPqD Centro de Pesquisa e Desenvolvimento Padre Roberto Landell de Moura

DASE Digital Applications Software Environment

DAVIC Digital Audio Visual Council

DVB Digital Video Broadcating

DVB-H Digital Video Broadcasting – Handheld

DVB-T Digital Video Broadcasting – Terrestrial

DVD Digital Vídeo Disc

EAD Ensino à Distância


EPG Eletronic Program Guide

GPL General Public License

GSM Global System Mobile

HAVi Home Audio Video Interoperability

HD High Definition

HDTV High Definition Television

HTML Hypertext Markup Language

IBGE Instituto Brasileiro de Geografia e Estatística

IDE Integrated Development Environment

IP Internet Protocol

ISDB Integrated Services Digital Broadcasting

ISDB-T Integrated Services Digital Broadcasting – Terrestrial

JMF Java Media Framework

LCD Liquid Crystal Display

LGPL Lesser General Public License

MHP Multimedia Home Platform

MPEG Moving Picture Experts Group


NCL Nested Context Language

NTSC National Television System Committee

PAL-M Phase Alternate Lines, com padrão M

PNAD Pesquisa Nacional de Amostra de Domicílios

PUC-RJ Pontifícia Universidade Católica do Rio de Janeiro

RGB Red, Green, Blue

SDTV Standard Definition Television

SBTVD Sistema Brasileiro de Televisão Digital

TVDI Televisão Digital Interativa

UFPB Universidade Federal da Paraíba

UHF Ultra High Frequency

UI User Interface

URL Uniform Resource Locator

USB Universal Serial Bus

USP Universidade de São Paulo

XML eXtensible Markup Language


SUMÁRIO

INTRODUÇÃO ..................................................................................................................... 14
1 A ERA DA TV DIGITAL ....................................................................................... 16
1.1 CONSIDERAÇÕES INICIAIS................................................................................. 16
1.2 HISTÓRIA DA TELEVISÃO................................................................................... 16
1.2.1 Televisão Analógica .................................................................................................. 17
1.2.2 TV Digital no mundo ................................................................................................ 18
1.2.3 TV Digital no Brasil .................................................................................................. 18
1.3 O QUE MUDA COM A TV DIGITAL .................................................................... 20
1.3.1 HDTV........................................................................................................................ 20
1.3.2 Multiprogramação ..................................................................................................... 22
1.3.3 Mobilidade e Portabilidade ....................................................................................... 23
1.3.4 Interatividade............................................................................................................. 24
1.4 COMPONENTES DA TV DIGITAL INTERATIVA.............................................. 26
1.5 PADRÕES PARA A TVDI....................................................................................... 28
1.5.1 Padrão Americano ..................................................................................................... 28
1.5.2 Padrão Europeu ......................................................................................................... 29
1.5.3 Padrão Japonês .......................................................................................................... 30
1.5.4 Padrão Brasileiro ....................................................................................................... 30
1.6 CONSIDERAÇÕES FINAIS .................................................................................... 31
2 APLICAÇÕES EM JAVATV ................................................................................ 32
2.1 CONSIDERAÇÕES INICIAIS................................................................................. 32
2.2 JAVATV ................................................................................................................... 32
2.2.1 Bibliotecas JavaTV.................................................................................................... 33
2.3 XLET......................................................................................................................... 34
2.4 EMULADORES........................................................................................................ 36
2.4.1 XletView ................................................................................................................... 37
2.4.2 OpenMHP.................................................................................................................. 38
2.5 API HAVI.................................................................................................................. 38
2.6 API DAVIC............................................................................................................... 40
2.7 METODOLOGIA ..................................................................................................... 41
2.8 CONSIDERAÇÕES FINAIS .................................................................................... 42
3 APLICAÇÃO PARA TV DIGITAL...................................................................... 43
3.1 CONSIDERAÇÕES INICIAIS................................................................................. 43
3.2 O APLICATIVO: “ARQUIVO TV”......................................................................... 43
3.3 REQUISITOS DO SISTEMA................................................................................... 44
3.3.1 Declaração dos Requisitos Funcionais e Não-Funcionais......................................... 45
3.4 CASOS DE USO....................................................................................................... 48
3.4.1 Lista dos Casos de Uso.............................................................................................. 48
3.4.2 Casos de Uso no Modo Expandido ........................................................................... 49
3.4.3 Diagrama de Casos de Uso........................................................................................ 53
3.5 DIAGRAMA DE CLASSES..................................................................................... 55
3.6 DIAGRAMA DE SEQUÊNCIA ............................................................................... 58
3.7 CONSIDERAÇÕES FINAIS .................................................................................... 59
4 TESTES E RESULTADOS .................................................................................... 60
4.1 CONSIDERAÇÕES INICIAIS................................................................................. 60
4.2 FUNCIONAMENTO EM AMBIENTE REAL ........................................................ 60
4.5 TESTES DO SISTEMA E RESULTADOS OBTIDOS ........................................... 61
4.6 DIFICULDADES ENCONTRADAS ....................................................................... 67
4.7 PROJETOS FUTUROS ............................................................................................ 68
4.8 CONSIDERAÇÕES FINAIS .................................................................................... 68
CONCLUSÃO........................................................................................................................ 69
REFERÊNCIAS .................................................................................................................... 70
GLOSSÁRIO ......................................................................................................................... 73
ANEXOS ................................................................................................................................ 78
14

INTRODUÇÃO

Com o surgimento da TV Digital, a qualidade de imagem e som transmitidos


pelas emissoras é largamente melhor, transmitindo sons em seis canais ao invés de dois, sem
ruídos e imagens em Alta Definição com resolução de até 1920x1080 pixels (Site Oficial da
TV Digital Brasileira, 2009). A melhora na qualidade da imagem e som é o que a TV Digital
nos traz de imediato, contudo ela oferece mais que isso. O telespectador deixa de ser uma
mera figura passiva, que apenas assiste ao que é transmitido, e passa a ser um telespectador
que interage com o que é transmitido, pois a TV digital traz a possibilidade da interatividade
com o conteúdo transmitido através da TVDI (TV Digital Interativa).
Com a TVDI é possível o acesso à Internet e a um grande fluxo de dados. Esse
fluxo de dados contém além da imagem e som, informações como notícias, resultados
esportivos, jogos, consulta financeira, previsão meteorológica, entre outros (Site Oficial da
TV Digital Brasileira, 2009). Também é possível com a TVDI a interatividade em grupo,
onde os telespectadores trocam informações entre si. Um exemplo prático é o uso de tele-
conferência para o EAD (Ensino a Distância).
Para atender a essa demanda, o desenvolvimento de aplicativos tornou-se
necessário para que o usuário telespectador interaja com a TV em busca de informações. O
aplicativo irá proporcionar maior comodidade e entretenimento ao telespectador, onde até os
mais inexperientes utilizarão o aplicativo por ser de fácil entendimento e que será muito útil
no cotidiano.
O objetivo deste projeto é apresentar as características da tecnologia de TV
Digital e o desenvolvimento de um Xlet, ou seja, um aplicativo para TV Digital responsável
pela interatividade com o usuário através das bibliotecas de JavaTV. O aplicativo fará uma
reserva de um vídeo escolhido pelo usuário no horário definido por ele, de acordo com a
listagem dos vídeos da emissora que irá apresentá-los em sequência. Para isso será usado um
emulador para simulação em um desktop, chamado XletView, baseado em um middleware
Open Source chamado MHP (Multimedia Home Platform) que é adotado pelo padrão europeu
de TV Digital.
15

Para o desenvolvimento deste projeto serão feitas pesquisas em livros,


monografias, artigos, revistas e sites. O aplicativo será desenvolvido na linguagem Java, pois
segundo o site TVDI, a linguagem é muito ampla no sentido que podemos usá-la para
programar para qualquer tipo de aplicativo final, seguido das APIs JavaTV, HAVi (Home
Audio Video Interoperability) e DAVIC (Digital Audio Visual Council) que fornece todo o
material necessário para o desenvolvimento. Existem também outras tecnologias como Ginga
NCL (Nested Context Language) e Microsoft TV que é uma plataforma para desenvolvimento
paga.
16

1 A ERA DA TV DIGITAL

1.1 CONSIDERAÇÕES INICIAIS

Neste capítulo será apresentada a história da televisão, as mudanças da TV


analógica para a TV Digital, os componentes que integram a Televisão Digital Interativa
(TVDI), e os padrões utilizados pela mesma, que fornece conceitos básicos para o
desenvolvimento do aplicativo proposto desenvolvido com JavaTV utilizando o emulador
XleTView.

1.2 HISTÓRIA DA TELEVISÃO

A televisão pode ser considerada como um dos melhores meios de


comunicação existentes. Através dela é possível receber informações, entretenimento e
cultura, além de ser bem acessível a todos. O resultado da Pesquisa Nacional de Amostra de
Domicílios (PNAD) realizada pelo IBGE em 2007 aponta que, 94,5% dos lares brasileiros
possuem televisão (Teleco, 2009).
Desde sua criação, a televisão vem evoluindo com o passar dos anos.
Primeiramente surgiu com transmissões em preto e branco, passando a serem transmitidas a
cores alguns anos depois (Tudo Sobre TV, 2009). Até então não havia sofrido mais nenhuma
mudança, até o surgimento da Televisão Digital em Alta Definição (HDTV – High Definition
Television), onde além da melhora significativa da qualidade de som e imagem, o
telespectador pode interagir com a programação que é transmitida (TVDi, 2009).
17

1.2.1 Televisão Analógica

A história da televisão deve-se a grandes cientistas que contribuíram para a sua


invenção. Segundo o site Tudo sobre TV, em 1817, o químico sueco Jakob Berzelius
descobriu o Selênio, mas em 1873, o inglês Willoughby Smith comprovou que o Selênio
possuía a propriedade de transformar energia luminosa em energia elétrica; em 1892, Julius
Elster e Hans Getiel inventaram a célula fotoelétrica; em 1906, Arbwehnelt desenvolveu um
sistema de televisão por raios catódicos.
Em 1926, John Logie Baird fez a primeira demonstração em Londres para a
comunidade científica, onde o padrão de definição possuía 30 linhas e era mecânico. Em
março de 1935 emitiu-se oficialmente a televisão na Alemanha, com a intenção de transmitir
as Olimpíadas de Berlim, o primeiro grande evento passado na telinha. No ano seguinte,
Londres já utilizava imagens com 405 linhas oferecendo uma melhora significativa para a
época (Tudo sobre TV, 2004).
Para Alencar (2007), “em 1939 ocorreu a primeira transmissão de televisão, em
circuito fechado, que se tem conhecimento no Brasil. Foi durante a Feira Internacional de
Amostras na cidade do Rio de Janeiro”. No dia 18 de setembro de 1950, Assis Chateubriand
inaugurou a TV Tupi de São Paulo, canal 3. Dez anos mais tarde, o Brasil já possuía 200 mil
televisores.
De acordo com o site Tudo Sobre TV (2009), as transmissões em cores
começaram nos Estados Unidos em 1954, porém nessa época já havia mais de 10 milhões de
aparelhos em preto e branco. Com isso, criou-se nos Estados Unidos um comitê especial para
colocar cor no sistema preto e branco, denominado National Television System Committee,
cujas iniciais dariam o nome para o novo sistema, NTSC. O novo sistema a cores tinha o
princípio de decompor a luz branca em três cores primárias, vermelho, verde e azul,
conhecido por RGB (Red, Green, Blue), numa proporção de níveis de 30% de vermelho, 59%
de verde e 11% de azul.
Para Alencar (2007), “em 19 de fevereiro de 1972, aconteceu a primeira
transmissão em cores no Brasil, com a Festa da Uva de Caxias, Rio Grande do Sul” (Alencar,
2007). O sistema de transmissão no Brasil é o PAL-M (Phase Alternate Lines, com padrão M)
desde esta época. O sistema PAL foi desenvolvido na Alemanha para o uso da resolução de
625 linhas, e a Universidade de São Paulo (USP) modificou o sistema para PAL-M para o uso
da resolução de 525 linhas adotado pelo Brasil. Com a TV a cores, a resolução média dos
18

aparelhos é de 480 linhas variando de acordo com o sistema de transmissão, chegando a até
625 linhas. Com os novos aparelhos com mais de 40 polegadas, esta resolução já não é
suficiente para preencher toda a tela, pois a quantidade de pixels é pouca, com baixa qualidade
da imagem.

1.2.2 TV Digital no Mundo

Apesar de a TV Digital ser uma novidade tecnológica, os primeiros padrões de


transmissão digital existentes estão sendo avaliados a mais de duas décadas. Inicialmente, a
ideia principal era focada na alta definição, mas atualmente há diversos recursos de
interatividade com o telespectador, como placar esportivo, notícias e outras informações.
A TV de alta definição, HDTV, já está funcionando desde 1995 nos Estados
Unidos, mas com uma tímida adesão do público, e o Japão foi o primeiro país a implantar um
satélite dedicado à transmissão digital. Segundo o site Teleco, o processo de implantação da
TV Digital vem ocorrendo gradativamente em alguns países, no Reino Unido em 1998, nos
Estados Unidos em 2002, Japão em 2003 e no Brasil em 2007.
A transição para a TV Digital está sendo lenta, pois os aparelhos necessários
para receber o sinal estão, na data atual, com preços altos, inclusive os seus conversores (set-
top boxes) que são responsáveis pela decodificação do sinal, e para se obter sucesso na
implantação da TV Digital, os conversores devem ser acessíveis à população.

1.2.3 TV Digital no Brasil

De acordo com a Revista Guia Como se Faz Especial TV Digital sem


Segredos, o interesse em desenvolver um sistema nacional de transmissão de TV Digital
surgiu em 1994 por um grupo de emissoras e algumas empresas.
Alencar (2007) diz que, em 1999, a Universidade de Mackenzie começou a
realizar alguns testes dos padrões de transmissões digitais existentes e o CPqD (Centro de
Pesquisa e Desenvolvimento Padre Roberto Landell de Moura) fez a validação dos mesmos,
com a participação de outras entidades. Após estes testes, o presidente da República Luís
19

Inácio Lula da Silva assinou o decreto nº 4901 que criou o SBTVD (Sistema Brasileiro de
Televisão Digital).
A transmissão de TV Digital no Brasil iniciou oficialmente no dia 02 de
Dezembro de 2007, somente para a região metropolitana de São Paulo. Atualmente, outras
cidades também recebem o sinal digital, e aos poucos, as demais cidades brasileiras terão
acesso a essa tecnologia. Até 2011, o sinal digital será obrigatório em todas as capitais
brasileiras. Estima-se que até 2013, transmissoras e suas afiliadas ofereçam o sinal digital.
Porém, somente no dia 29 de Junho de 2016 é que o sinal analógico deverá sair do ar, como
mostra a figura abaixo (Site Oficial da TV Digital Brasileira, 2009).

Figura 1 - Cronograma de implantação da TV Digital no Brasil


Fonte: Site Oficial da TV Digital Brasileira.

Assim que a transmissão analógica for encerrada, quem não possuir um


conversor digital para analógico (set-top box), ou um televisor com o conversor embutido, não
conseguirá mais assistir televisão, portando, o telespectador será obrigado a comprar um
conversor para continuar recebendo as transmissões.
Dentre os principais padrões de transmissão digital existentes, e de acordo com
as necessidades locais, o Brasil decidiu criar seu próprio sistema digital, o SBTVD, derivado
do sistema japonês ISDB (Integrated Services Digital Broadcasting) que é o sistema digital
mais completo e eficiente até o momento (Revista Guia Como se Faz Especial TV Digital sem
Segredos, 2008).
20

1.3 O QUE MUDA COM A TV DIGITAL

A TV Digital possui diversos benefícios, como o sinal de alta definição de


áudio e vídeo, multiprogramação, mobilidade, portabilidade e a interatividade.
A tecnologia transforma cada elemento da imagem e do som em um código
binário (composto de 0 e 1), que é transmitido pelo ar na frequência UHF (Ultra High
Frequency) e convertido pelo set-top box.
Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos,
mesmo adquirindo o conversor set-top box, o televisor de tubo não terá a mesma qualidade do
sinal digital que os televisores de plasma e de LCD (Liquid Crystal Display), pois estes
últimos possuem telas no formato widescreen, proporcionando até 30% mais de visibilidade.

1.3.1 HDTV

Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos


(2008), o sinal de alta definição (HDTV) é o principal benefício da TV Digital. Com ele
obtém-se um som mais limpo, puro e com menos ruídos, pois o sinal de áudio deixa de ser de
dois canais (mono ou estéreo), passando a ser de seis canais, graças ao sistema de som
Surround 5.1, com realce dos graves, que proporciona ao telespectador uma experiência como
se estivesse dentro do programa transmitido, permitindo a utilização em diversos idiomas
dentre outros serviços; e a imagem será apresentada com mais detalhes, pois o sinal de vídeo
deixa de ser de 480 linhas e passa a ser de até 1080 linhas horizontais, que somente é
alcançado em televisores widescreen Full HD, cuja razão de aspecto é 16:9, que indica a
relação entre a largura e a altura da tela, sendo que o sinal analógico possuía tela quadrada de
4:3.
Ainda de acordo com a Revista Guia Como se Faz Especial TV Digital sem
Segredos (2008), as diferenças mais visíveis durante a transição do sinal analógico para o
digital será a diminuição dos ruídos e as distorções das imagens, denominadas “fantasmas da
TV analógica”. O telespectador brasileiro que estiver equipado com o set-top box, terá no
início uma transmissão semelhantes à qualidade encontrada em um DVD (Digital Vídeo Disc)
de qualidade com som e imagem limpos. No Brasil, as emissoras de TV ainda não estão
21

transmitindo toda a sua programação em HDTV. Quando isso ocorre, um ícone com a sigla
HDTV ou HD (High Definition) aparece identificando que a transmissão é digital. Aos
poucos as mesmas incluirão gradativamente seus programas em HDTV.
Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos
(2008), existe também um formato de TV para HDTV que exibe qualidade superior ao
modelo de tubo e inferior ao Full HD, chamado HDTV Ready que possui definição de 720
linhas horizontais.
A Figura 2 mostra uma comparação entre o sinal analógico e o sinal digital
sendo exibidos em TVs de tubo e de LCD. É possível perceber que o sinal digital deixa a
imagem mais visível, podendo ser observada uma área mais ampla da imagem.

Figura 2 - Comparação entre o sinal analógico e o digital


Fonte: Site Veja isso.

Com o formato de tela widescreen (16:9), o telespectador consegue enxergar


uma área mais ampla da cena. Um exemplo deste grande benefício será a cobertura de eventos
esportivos. O telespectador poderá ter uma visão panorâmica como se estivesse assistindo a
partida diretamente do local transmitido. Este detalhe deverá ser observado pelos produtores
de TV, tomando cuidado com as informações exibidas em cena.
Segundo o site da Associação Brasileira de Emissoras de Rádio e Televisão
(2009), os padrões HDTV atuais são definidos como 1080i (entrelaçado), 1080p ou 720p
(progressivo) usando uma proporção de tela 16:9.
As resoluções existentes para HDTV são de 1280 x 720 pixels, obtida no
padrão 720p, podendo chegar a até 1920 x 1080 pixels que é obtida no padrão 1080p,
22

enquanto que na resolução do sinal analógico é de 720 x 480 pixels. No modo entrelaçado, as
linhas que formam a imagem são lidas em dois tempos (primeiro as linhas ímpares e depois as
pares) e também em dois sentidos (da esquerda para a direita e de cima para baixo), este
processo é chamado de varredura ou scanning, porém este modo causa efeito de
“cintilamento” na tela, pois não lê todas as linhas de uma só vez, dando a impressão que a
imagem está piscando. No modo progressivo, ou progressive scan, a leitura é feita em uma
combinação de linhas ímpares e pares ao mesmo tempo em um único sentido (de cima para
baixo), gerando uma única varredura proporcionando melhor nitidez da imagem, sem o efeito
de cintilamento apresentado anteriormente. A figura abaixo mostra algumas resoluções de tela
existentes.

Figura 3 - Comparação entre as resoluções de tela para televisão


Fonte: Site Image Group.

Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos


(2008), outro sinal digital existente é o sistema digital padrão, que é identificado por SDTV
(Standard Definition Television), cuja sua qualidade é um pouco inferior ao HDTV. Este sinal
é transmitido pelas TVs por assinaturas e alguns decodificadores.

1.3.2 Multiprogramação

Atualmente, o telespectador está acostumado a assistir a transmissão a partir do


ângulo que a emissora exibe, mas isso mudará, pois com a chegada da multiprogramação, as
23

emissoras transmitirão aos telespectadores mais de um programa ao mesmo tempo ou vários


ângulos diferentes de uma mesma atração, sendo que o telespectador escolherá qual o melhor
ângulo que deseja assistir.
De acordo com a Revista Guia Como se Faz Especial TV Digital sem Segredos
(2008), inicialmente, a TV digital brasileira focará em transmissão em HDTV e não em
multiprogramação, que ainda demorará mais tempo para entrar em vigor, pois ainda não é
atrativa para o sistema de negócios praticado pela TV aberta por medo de perda de audiência.
Porém já existem testes para a implantação deste recurso no Brasil (Folha Online, 2009).

1.3.3 Mobilidade e Portabilidade

A diferença entre mobilidade e portabilidade é que a primeira é a possibilidade


de assistir a um programa de TV em qualquer lugar, podendo estar no trânsito, na rua, no
escritório, no mar ou até mesmo no ar com qualidade do sinal excelente; e a segunda é a
transmissão digital para dispositivos portáteis, como celulares, computadores ou notebooks.
Acredita-se que a mobilidade e a portabilidade da TV Digital conquistará o
telespectador, pois será possível assistir TV pelo seu próprio celular, em qualquer lugar onde
ele estiver. As pessoas talvez comecem a usar mais o celular por causa da interatividade do
que propriamente assistir programas. Na figura a seguir há um exemplo de como a TV será
exibida no celular.

Figura 4 - TV sendo exibida em um celular


Fonte: Blog teiasilvio.
24

De acordo com o site Meio Bit (2009), existem diversos receptores de TV


Digital onde é possível, através da entrada USB, assistir TV pelo próprio computador. Basta
conectar o receptor à entrada USB e através de um software assistir ao canal desejado.

1.3.4 Interatividade

A TV Digital é muito mais que som e imagem. O sinal digital pode transmitir
dados e informações simultâneos à programação. De acordo com o site G1, o sinal digital
estabelece comunicação entre o telespectador e a emissora através de um canal de retorno,
permitindo que informações sobre determinado programa fiquem disponíveis ao usuário.
Exemplos do que pode ser feito com a interatividade: votar em enquetes, conferir escalação de
um time durante um jogo ou até ver a programação do canal.
Com a interatividade da TV Digital também será possível acessar à Internet,
leitura de e-mails, conferir saldo de contas bancárias, jogos e até compra de produtos, um
exemplo é mostrado na Figura 5. De acordo com a Folha Online (2006), existem três tipos de
interatividade: a local, a intermitente e a permanente.
• Interatividade Local: conteúdo adicional, em imagens de baixa definição,
textos ou aplicativos disponíveis na caixa receptora ou enviados pelas
emissoras.
• Interatividade Intermitente: há necessidade de canal de retorno, como linha
telefônica, por exemplo, gerando gastos ao telespectador. É intermitente, pois
não funciona o tempo todo, apenas quando o usuário deseja se conectar à
operadora de telecomunicações para enviar sua resposta. Além do conteúdo
fornecido pelas TVs, oferece votações, e-mails e comércio eletrônico.
• Interatividade Permanente: há necessidade de canal de retorno conectado o
tempo todo, como assinatura de serviço de banda larga. Permite acesso à
Internet, mensagens instantâneas, serviços bancários, serviços de governo,
comércio eletrônico, jogos e transmissão de vídeos por streaming.
25

Figura 5 - Exemplo de Interatividade


Fonte: Blog tagilramos.

Segundo o site CPqD (2009), o middleware Ginga, programa que permitirá a


interação do telespectador com o controle remoto é composto de duas partes: a declarativa,
que foi desenvolvida na Pontifícia Universidade Católica do Rio de Janeiro (PUC-RJ) e usa
NCL, como um HTML (Hypertext Markup Language), usando a linguagem de script
brasileira chamada Lua; a outra parte é a procedural, desenvolvida na Universidade Federal da
Paraíba (UFPB), feita em Java, baseada no padrão europeu, porém ocorreram problemas e
teve de ser refeita, após isso foi concluída e batizada de Java DTV.
Ginga é uma tecnologia que leva ao cidadão todos os meios para que ele
obtenha acesso à informação, educação à distância e serviços sociais apenas usando sua TV, o
meio de comunicação onipresente do país. É uma especificação aberta, de fácil aprendizagem
e livre de royalties, permitindo que todos os brasileiros produzam conteúdo interativo, o que
dará novo impulso às TVs comunitárias e à produção de conteúdo pelas grandes emissoras
(Ginga, 2009).
Na realidade a interatividade da TV Digital ainda não é muito difundida nos
países, o especialista em TV Digital Daniel Pataca em uma entrevista para o site Cosmo
(2009) diz: “A interatividade na TV Digital ainda é um aprendizado, mesmo no exterior ela
não tem um impacto grande, por enquanto. A TV Digital interativa vai ser uma coisa
completamente diferente”, afirma o pesquisador do CPqD.
26

1.4 COMPONENTES DA TV DIGITAL INTERATIVA

Segundo Brennand e Lemos (2007:111), um grupo de componentes foi criado


para viabilizar a transmissão, recepção e apresentação dos conteúdos audiovisuais e a
execução de aplicações que permitem interatividade com a televisão. Esses componentes
podem ser classificados em: transmissão (ou modulação), codificação, transporte, middleware
e aplicação.
De acordo com Eli Cândido Junior (2008), a transmissão de uma aplicação de
TV Digital é feita da seguinte maneira: o seu conteúdo, contendo áudio, vídeo e a aplicação
interativa, é codificado gerando um fluxo elementar. No caso das aplicações o mecanismo de
transmissão é conhecido como carrossel de dados. No carrossel de dados, o conteúdo das
aplicações é dividido em módulos que são enviados em ciclos, permitindo que mude para o
canal de cada módulo. Os fluxos elementares são agrupados formando programas de TV que
também são agrupados em canais de TV lógicos. Quando o sinal chega ao receptor, acontece
o processo inverso. O sinal é demodulado e demultiplexado para separar todos os fluxos.
Assim, o set-top box realiza a demodulação do sinal de TV. A figura a seguir mostra os
componentes que definem um sistema de TV Digital.

Figura 6 - Componentes que definem um sistema de TV Digital


Fonte: Eli Cândido Júnior, 2008.
27

Ainda segundo Eli Cândido Junior (2008), o set-top box é um equipamento


responsável pela conexão entre um televisor e uma fonte externa de sinal, transformando este
sinal em conteúdo que é apresentado na tela da televisão. Ele é adaptado para as necessidades
do ambiente televisivo, possuindo processador, memória, sistema operacional, entre outros
itens. Nele é encontrado também o middleware, que é de suma importância para o
desenvolvimento de aplicações em TV Digital. A Figura 7 mostra um modelo de set-top box.
Segundo Brennand e Lemos (2007:99), “no contexto de TV Digital, o
middleware vem a ser o software que controla suas principais facilidades (grade de
programação, menus de opção), inclusive a possibilidade de execução de aplicações, dando
suporte à interatividade”. O middleware estabelece comunicação entre o hardware e o sistema
operacional do set-top box às aplicações e também é responsável por fornecer as APIs
(Application Programming Interface). Ainda não existe um padrão universal de middleware.
Os aparelhos convencionais de TV necessitam da instalação do set-top box, e os mais
modernos têm o conversor embutido no próprio aparelho.

Figura 7 - Modelo de um set-top box


Fonte: Eli Cândido Júnior, 2008.

Segundo Pozzo (2008), o sistema de televisão digital é responsável pelas


definições que servem de referência para criação de produtos compatíveis entre geradores de
conteúdo, programadores de aplicação, fábrica de equipamentos eletrônicos entre outros. Para
obter todas as vantagens que a televisão digital é capaz de proporcionar, é preciso ter um
padrão definido pelos esquemas de compressão e codificação de vídeo, pela camada de
abstração de software do set-top box (o middleware) e o esquema de multiplexação e
modulação de dados, como mostra a figura a seguir:
28

Figura 8 - Blocos na forma de caixa preta definindo um sistema de televisão digital


Fonte: Aplicativos Para Televisão Digital Interativa (Pozzo).

1.5 PADRÕES PARA A TVDI

Os pioneiros em transmissão digital foram os Estados Unidos, mas a Europa e


o Japão também desenvolveram seus próprios modelos para embarcarem nessa nova era
digital. Atualmente existem três padrões de sistemas: o americano, chamado ATSC
(Advanced Television System Comittee), com o seu middleware DASE (Digital Applications
Software Environment); o europeu, chamado de DVB (Digital Video Broadcasting), com o
middleware MHP (Multimedia Home Platform); e o japonês, chamado ISDB (Integrated
Services Digital Broadcasting), com o middleware ARIB (Association of Radio Industries
and Businesses).
O Brasil, baseado no sistema japonês, criou o seu próprio padrão, chamado
ISDB-TB (Integrated Services Digital Broadcasting – Terrestrial) com o middleware Ginga.

1.5.1 Padrão Americano

Os Estados Unidos apresentaram o seu padrão de transmissão digital no início


da década de 1980. É focado na alta definição (HDTV). Segundo Brennand e Lemos
(2007:115), seu formato compressão e transporte de vídeo é o MPEG-2 (Moving Picture
29

Experts Group), e a compressão de aúdio é o Dolby AC-3. A transmissão dos sinais digitais é
feita por modulação 8VSB (Vestigial Sideband Modulation).
Porém, segundo o site CPqD (2009), este sistema não disponibiliza a interação
com as novas tecnologias móveis, como os celulares e a tecnologia Wi-fi (aparelhos em fio)
devido à modulação terrestre usada 8VSB, que se mostra pouco compatível com receptores
em movimento. Este sistema também é utilizado como padrão de transmissão digital no
Canadá, México e Coréia do Sul (Revista Guia Como se Faz Especial TV Digital sem
Segredos, 2008).
De acordo com Brennand e Lemos (2007:116), este padrão não é muito
difundido em outros países devido ao alto custo de instalação que é superior aos modelos
europeu e japonês, e ainda assim testes demonstram que o ATSC é mais suscetível a erros e
ruídos de transmissão que nos outros padrões citados.

1.5.2 Padrão Europeu

Segundo o site DVB (2009), o sistema europeu começou a ser desenvolvido na


década de 1990, o padrão DVB está presente em mais de 35 países da europa e tem serviços
usados em todos os continentes. Detém um mercado atual de 270 milhões de conversores. E,
como já tinham o padrão americano como modelo, os europeus avaliaram os prós e contras do
modelo americano e desenvolveram um padrão para atender as necessidades européias
(Revista Guia Como se Faz Especial TV Digital sem Segredos, 2008).
Este padrão privilegia a multiprogramação e a interatividade. O middleware
MHP é baseado em tecnologias como JavaTV, DAVIC e HAVi, o qual foi completamente
desenvolvido em Java, sendo este padrão o escolhido para o desenvolvimento do projeto, pois
o mesmo fornece ferramentas de fácil acesso, que são mais utilizadas e se tornou base para o
desenvolvimento de outros padrões como o japonês e o brasileiro. Além do suporte à
qualidade HDTV, ele está voltado para a interatividade, porém para permitir a transmissão
para dispositivos móveis, é necessário uma banda extra, o DVB-H (Digital Vídeo
Broadcasting – Handheld).
Segundo o Brennand e Lemos (2007:113), o formato de compressão de vídeo
utilizado por DVB é o MPEG-2 e para audio MPEG-2 ACC. A transmissão dos sinais digitais
é feita por modulação COFDM (Coded Orthogonal Frequency-Division Multiplexing).
30

Ainda de acordo com Brennand e Lemos (2007:112), é considerado um sistema


mais flexível que o padrão americano, pois permitem diversas configurações para camadas de
transmissão (transmissão terrestre por radiodifusão, via cabo, via satélite e via micro-ondas).
Neste padrão a interoperabilidade e a segurança das informações são observadas atentamente.

1.5.3 Padrão Japonês

Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos


(2008), o modelo japonês começou a ser desenvolvido no final da década de 1990, como já
sabiam dos erros do sistema americano e ancorados na bem-sucedida experiência européia, os
japoneses desenvolveram o sistema de transmissão digital mais completo e eficiente. Este
padrão reúne a flexibilidade do DVB-T (Digital Vídeo Broadcasting – Terrestrial), somados
às necessidades de comunicação e entretenimento futuras. Apresentaram ao mundo a
possibilidade de um canal de TV Digital ser segmentado em vários subcanais, conhecido
como multiprogramação, e também se preocuparam com a mobilidade e portabilidade do
sistema, que é o seu grande diferencial.
Segundo o Brennand e Lemos (2007:116), esse padrão é considerado o mais
versátil para transmissão do sinal digital para dispositivos móveis, porém é menos eficaz que
o DVB, que é capaz de apresentar menor consumo de bateria desses dipositivos móveis. Seu
formato compressão e transporte de vídeo é o MPEG-2, e a compressão de aúdio é o MPEG-2
AAC. A transmissão dos sinais digitais é feita por modulação COFDM.
Com todos esses benefícios, o padrão japonês serviu de inspiração para a
implantação do padrão brasileiro.

1.5.4 Padrão Brasileiro

Dentre os principais padrões de transmissão digital existentes e de acordo com


as necessidades locais, o Brasil decidiu criar seu próprio sistema digital, o SBTVD, derivado
do sistema japonês ISDB-T (Integrated Services Digital Broadcasting- Terrestrial) que é o
sistema digital mais completo e eficiente até o momento.
31

Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos


(2008), o Sistema brasileiro é o primeiro a adotar o padrão de codificação e compressão
MPEG-4, também conhecido como H.264 para codificação de vídeo, e o HE-AAC v2 para
áudio. Estes padrões tornam os sinais de áudio e vídeo mais compactos, podendo ser enviados
juntos em um único feixe de dados, sendo que o padrão japonês utiliza o sistema MPEG-2, o
mesmo que os DVDs, ou seja, é inferior ao padrão brasileiro. É também devido à compressão
pelo padrão MPEG-4 que é possível estabelecer o recurso de multiprogramação. Os
engenheiros brasileiros também agregaram outras tecnologias ao sistema japonês, tornando-o
compatível com as tecnologias mais recentes, como protocolo IP e tecnologia móvel como
GSM (Global System Mobile).
O middleware utilizado no SBTVD é o Ginga, responsável pela interatividade,
e oferece uma série de facilidades para o desenvolvimento de conteúdos e aplicativos para TV
Digital, pois possui um conjunto de APIs mais amplo. Ele é subdivido em dois paradigmas de
programação (Ginga-NCL e Ginga-J) diferentes que poderão ser utilizados dependendo das
funcionalidades requeridas no projeto. “Ginga-NCL é um ambiente de apresentação
multmídia para aplicações declarativas escritas em NCL e sua linguagem de script Lua”. O
“Ginga-J provê uma infra-estrutura de execução de aplicações Java e extensões
especificamente voltadas ao ambiente de TV” (Ginga, 2009).

1.6 CONSIDERAÇÕES FINAIS

Os conceitos apresentados neste capítulo relacionado à TV Digital são


essenciais para o entendimento das conclusões que serão obtidas e apresentadas pelo
desenvolvimento do aplicativo para TV Digital com interatividade permanente desenvolvido
baseado no padrão europeu, com seu middleware MHP. No capítulo seguinte será explicado
as aplicações em JavaTV e as demais APIs utilizadas para o desenvolvimento do projeto.
32

2 APLICAÇÕES EM JAVATV

2.1 CONSIDERAÇÕES INICIAIS

Neste capítulo serão apresentadas as ferramentas e tecnologias usadas para o


desenvolvimento de um aplicativo para TV Digital, chamado “Arquivo TV”. Serão abordados
os conceitos sobre a API JavaTV e suas bibliotecas, Xlets, emuladores e as demais APIs
HAVi e DAVIC.

2.2 JAVA TV

A linguagem Java é muito ampla, de forma que se pode usá-la para o


desenvolvimento de tecnologias diferentes, pois, segundo o site TDVI (2009), a Sun
desenvolve bibliotecas para permitir programar para os mais variados tipos de aplicações,
além da programação para computadores domésticos, pode-se programar para outros fins
muito interessantes, com a mais nova API (Application Programming Interface) criada,
chamada de JavaTV, para atender a programação para TV Digital.
De acordo com o site Aprenda na Web (2009), JavaTV é uma API baseada na
plataforma JAVA, que foi desenvolvida pela Sun Microsystems com o apoio de algumas
grandes indústrias de televisão (LG Electronics, Motorola, Philips, Samsung, Sony, Toshiba,
entre outras) foi lançada em Dezembro de 2000. Atualmente, a API se encontra na versão 1.1,
disponibilizada em 24 de janeiro de 2006.
Segundo o site Sun (2009), a interface de programação de aplicações JavaTV
oferece uma plataforma ideal para o desenvolvimento e implantação à emergente classe de
serviços de televisão interativa. A linguagem de programação Java fornece conteúdo
colaborador com um elevado grau de flexibilidade e controle sobre a aparência de suas
aplicações, oferecendo a mais dinâmica e atraente experiência de televisão interativa.
33

A API JavaTV tem como objetivo principal, o desenvolvimento de aplicações


interativas portáteis, suportando um alto nível de interatividade e gráficos de qualidade, que
podem ser executados em um set-top box, desde que o mesmo esteja equipado com a Máquina
Virtual Java, que é necessário para interpretar os bytecodes gerados. Segundo o site JavaFree,
essa API fornece fluxo de áudio e vídeo, acesso condicional, acesso aos dados nos canais de
transmissão e do Service Information, controle do sintonizador de canais, sincronização da
mídia e gerenciamento do ciclo de vida das aplicações.
É possível o desenvolvimento de aplicações interativas com JavaTV
independente da tecnologia utilizada nos protocolos de transmissão, pois essa API funciona
independente do sistema de TV Digital adotado, desde que, este padrão suporte JavaTV.
Com o uso de JavaTV, os programas de televisão conterão não somente áudio e
vídeo, terá também um serviço interativo, com dados e aplicações associados à sua
programação.

2.2.1 Bibliotecas JavaTV

Segundo Eli Cândido Júnior (2008:27), “JavaTV necessita de um ambiente


Personal Java e usa um subconjunto do AWT (Abstract Window Toolkit) para construir as
interfaces do usuário e JMF (Java Media Framework) para o controle da mídia”.
Ainda de acordo com Eli Cãndido Júnior (2008), a API JavaTV possui várias
bibliotecas que são responsáveis por prover a estrutura básica do sistema:
• javax.tv.xlet – modelo de ciclo de vida das aplicações e classes de apoio;
• javax.tv.locator – oferece mecanismos para referências em formato de URL
(Uniform Resource Locator) para serviços de broadcast e clipes de mídia
broadcast;
• javax.tv.net – oferece mecanismo para acessar datagramas IP contidos em
um fluxo de broadcast;
• javax.tv.carousel – acesso a arquivos de broadcast agregados em um sistema
de aquivos no fluxo de vídeo;
34

• javax.tv.graphics – adiciona um suporte mínimo à biblioteca gráfica AWT,


para solução de questões específicas em TV (sobreposição de imagens em
vídeo);
• javax.tv.media – extensões para suporte à integração JMF;
• javax.tv.media.protocol – suporte JMF para protocolos de streaming
broadcast;
• javax.tv.service – descrição alto nível de serviços de TV Digital, incluindo
também mecanismos básicos para a coleta de informações sobre serviço do
fluxo broadcast;
• javax.tv.service.guide – suporte para aplicações do tipo EPG (Eletronic
Program Guide, Guia Eletrônico de Programação) e seus conceitos
associados (horário, classificação etária, etc.);
• javax.tv.service.navigation – suporte à navegação em serviços de TV Digital.
Isso inclui suporte à lista de serviços favoritos, componentes agregados a
serviços, etc.;
• javax.tv.service.transport – conceitos descrevendo os mecanismos de
transporte para um serviço de TV Digital;
• javax.tv.service.selection – conceitos descrevendo como os serviços são
apresentados ao usuário e como um novo serviço pode ser selecionado. Há
também a possibilidade de apresentação de múltiplos serviços de uma só vez
(picture-in-picture);
• javax.tv.util – classes utilitárias para aplicações JavaTV, incluindo gerência
de temporizadores e eventos temporizados.

2.3 XLET

Um Xlet é uma aplicação Java desenvolvida para proporcionar interatividade


para a TV Digital. Assim como um applet é adicionado em páginas HTML e midlets são
adicionados em aparelhos celulares, os xlets são adicionados em um serviço de TV Digital, os
chamados set-top boxes (The MHP – Guide, 2006). A maior diferença entre um applet e um
xlet, é que o primeiro não pode ser paralisado, e o segundo pode ser paralisado depois de ter
35

sua execução continuada, pois em um ambiente de televisão interativa, vários xlets podem
estar sendo executados simultaneamente, e provavelmente apenas um xlet estará sendo
exibido, sendo assim, paralisado um xlet, ele se torna invisível e poupa recursos de hardware,
possibilitando a execução e exibição de outras aplicações.
Cada Xlet tem seus próprios recursos que não interferem no funcionamento de
outros Xlets. A aplicação Xlet possui uma interface que permite a uma fonte externa controlá-
la de diversas formas.
A Figura 9 mostra os estados que um Xlet pode possuir em seu ciclo de vida:
carregado, paralisado, iniciado e destruído.

Carregado Paralisado

Destruído Iniciado

Figura 9 - Ciclo de vida de um Xlet


Fonte: Carvalho e Araújo, 2007.

No estado de Carregado ou Loaded, a aplicação já foi carregada, porém ainda


não foi inicializada; no estado de Paralisado ou Paused, a aplicação minimiza sua utilização
de recursos; no estado de Iniciado ou Active, a aplicação está em uso com seus recursos
ativos; e no estado de Destruído ou Destroyed, a aplicação libera todos os seus recursos da
memória.
A interface responsável pela implementação de todos os métodos de um xlet
mostrado na Figura 9 é a javax.tv.Xlet. Quando uma aplicação é chamada, ele primeiro
dispara o método initXlet(XletContext ctx) e, em seguida startXlet( ). O método pauseXlet( )
deixará o xlet pausado e invisível, e só retornará visível quando o método startXlet( ) for
chamado. Para encerrar definitivamente o xlet, a aplicação chama o método
destroyXlet(boolean inconditional), assim o xlet volta ao estado de não carregado, e o
parâmetro boolean inconditional é usado para indicar a obrigação de encerrar ou se tem a
possibilidade de negar o encerramento do xlet (The MHP – Guide, 2006).
36

De acordo com The MHP – Guide (2006), quando um xlet pretende alterar seu
estado atual, o gerenciador dele é avisado através dos métodos invocados pelo objeto
XletContext que é passado como parâmetro na inicialização do xlet. Existem três métodos que
informam o gerenciador do xlet sobre suas mudanças:
• void resumeRequest( ): Se o xlet pretende alterar seu estado de paralisado
para iniciado, esse método é invocado.
• void notifyPaused( ): Quando o xlet entra no estado de pausado, o gerenciador
do xlet é avisado por esse método.
• void notifyDestroy( ): Quando o xlet entra no estado de destruído, o
gerenciador do mesmo é avisado sobre sua destruição através desse método, e
não pode mais retomar o estado de iniciado.

2.4 EMULADORES

Como a TVDI ainda não está funcionando totalmente, o ambiente de TV é


simulado com a utilização de estações testes ou em softwares de emulação. O emulador faz o
papel do middleware nas aplicações, que é muito importante para testes preliminares em
aplicações de TV Digital.
Para a execução das aplicações para TVDI existem diversos emuladores
(XleTView, OpenMHP e Mhp4Free). O escolhido para a realização deste projeto é o
XleTView, por ser mais simples, de código aberto e compatível com diversos padrões de TV
Digital.
Segundo Eli Cândido Júnior (2008), um ambiente de TVDI possui recursos de
memória e processamento mais escassos que um computador convencional, um set-top box
recebe o conteúdo através de difusão de um sinal que contém uma sequência de transporte
MPEG, enquanto um computador pode utilizar as mais diversas fontes de mídias (locais ou
remotas). Porém o set-top box possui vários dispositivos de hardware específicos que não são
encontrados normalmente em um computador, como decodificadores MPEG e demoduladores
dentre outras particularidades.
37

2.4.1 XleTView

De acordo com Eli Cândido Júnior (2008), o XleTView é um emulador de


código aberto sob a licença GPL (General Public License) e além de uma implementação de
referência da API JavaTV, traz consigo especificações de outras APIs do MHP como HAVi,
DAVIC e implementações da própria DVB, além das bibliotecas PersonalJava.
Como a versão para desenvolvimento em Java do middleware brasileiro ainda
não tinha sido liberada no início do projeto, todos os testes de aplicações para TVDI foram
feitos no XleTView, pois segundo Eli Cândido Júnior (2008), todos os padrões da tecnologia
Java seguem os mesmos princípios, garantindo uma portabilidade entre os padrões de TV
Digital Interativa. A figura a seguir mostra a interface do XleTView.

Figura 10 – Interface do XleTView

O emulador é desenvolvido totalmente na linguagem Java e é executado tanto


em plataforma Linux como em Windows, porém é necessário a utilização do Java 2 Standard
Development Kit para compilar xlets e executar o XleTView. Utiliza o JMF, porém com várias
deficiências, entre elas a incapacidade de exibir vídeos MPEG relacionados ou controlados
por um xlet (Eli Cândido Júnior, 2008).
Baseado nos padrões MHP, existe um simulador de controle remoto no
XleTView, onde os eventos são capturados utilizando a classe AWT ou HAVi.
38

2.4.2 OpenMHP

Além do emulador XleTView, há também o OpenMHP, porém ele é mais


complexo. É um projeto de software de código aberto sob a licença LGPL (Lesser General
Public License) e baseado na especificação DVB-MHP. Assim como o XleTView, este
emulador também necessita da utilização do Java 2 Standard Development Kit para simular as
xlets e do JMF para permitir adicionar áudio e vídeo.
Para Carvalho e Araújo (2007), o emulador OpenMHP fornece toda uma
aplicação de teste das aplicações, explorando muitos conceitos da especificação JavaTV e
permitindo a implementação de funcionalidades na sua interface.

2.5 API HAVI

HAVi é uma organização criada em 1998 por um grupo de fabricantes que


inclui Grudig AG, Hitachi, Philips, Thomson, Panasonic, Sharp, Sony e Toshiba, com o
intuito de oferecer uma arquitetura de rede de modo que todos os dispositivos de áudio e
vídeo que compõe a rede possam interagir entre si (HAVi, 2009).
“A especificação HAVi define um conjunto de APIs e middleware capaz de
automaticamente detectar dispositivos na rede, coordenando as funções de vários dispositivos,
a instalação de aplicações e de interface do usuário do software em cada aparelho, e
garantindo a interoperabilidade entre múltiplas marcas de dispositivos” (HAVi, 2009).
A API HAVi oferece uma boa base para a construção de aplicações gráficas
avançadas utilizando funções de controle remoto, displays e gráficos de TV. Parte desta API
herda do pacote Java AWT (Abstract Window Toolkit). A AWT vem com interfaces voltadas
mais para computadores com uso de programação para mouse e texto. Por outro lado, a API
HAVi provê UI (User Interface) baseado em imagens, reusa os aspectos de AWT que não são
orientadas a computadores e também têm acesso ao sistema gráfico e resolução do vídeo
(Cunha; Karlsson; Hemmlepp, 2009).
Alguns objetos de UI que a API HAVi inclui são botões, text fields, texto
estático, ícones entre outros. Também possui objetos de alto nível como containers e
componentes para ajudar no gerenciamento e distribuição dos objetos de UI.
39

Uma tela de TVDI é geralmente dividida em três camadas: Background layer,


Video layer, Graphics layer. A camada de Background mostra o fundo com uma imagem ou
cor fixa; a camada de Video é a área em que o vídeo está sendo executado; a camada de
Graphics mostra a interface da aplicação onde são adicionados todos os recursos de UI. O
usuário vê as camadas na sequência Graphics, Video e Background, como mostra a figura
abaixo:

Figura 11 – Camadas do dispositivo do modelo gráfico do MHP


Fonte: Aplicativos Para Televisão Digital Interativa (Pozzo).

Segundo o site InteractiveWeb (2009), a API HAVi possui uma classe


chamada HScreen que é responsável pela configuração de tela. Esta classe possui três
subclasses (HVideoDevice, HGraphicsDevice e HBackgroundDevice) que são capazes de
configurar cada camada da TVDI separadamente.
As aplicações xlets compartilham a tela de uma TVDI pela classe HScene, cada
xlet pode possuir apenas um HScene, que substitui a classe Frame de AWT. HScene é
responsável pelo controle de foco para o controle remoto, sendo que é no objeto do tipo
HScene que são adicionados os objetos e containers responsáveis pela UI, e também controla
quando a aplicação fica visível.
40

2.6 API DAVIC

DAVIC era uma associação sem fins lucrativos, com uma adesão que
culminaram 222 empresas de mais de 25 países, e hoje atua somente através do site
www.davic.org. Estabelecida em 1994, DAVIC possui um conjunto de especificações e
padrões que tem como objetivo de fornecer interoperabilidade e difundir plataformas que
executam áudio e vídeo, promovendo o sucesso da interatividade digital (DAVIC, 2009).
A API DAVIC proporciona aos produtores de conteúdos multimídias maior
audiência, onde os usuários são protegidos contra a obsolescência e têm acesso a uma maior
quantidade de informação e comunicação com a entrega do conteúdo de áudio e vídeo junto
com a interatividade. (DAVIC, 2009).
Atualmente a API DAVIC aparece como uma solução que complementa
sistemas de TV a cabo por todo o mundo. Suas implementações aparecem mais fortes na
Europa, onde trabalha junto com o DVB. Normalmente é necessário a integração com outras
APIs, por exemplo, a HAVi.
De acordo com Cunha, Karlsson e Hemmlepp (2009), algumas funcionalidades
desta API são:
• Define que funcionalidade um sistema digital de áudio e vídeo devem
fornecer;
• Arquiteturas de referência do provedor, da rede de distribuição e também do
sistema presente na casa do usuário;
• Arquitetura de gerenciamento;
• Protocolos de camadas baixas e definição de interfaces físicas;
• Representação de informação;
• Ferramentas básicas de segurança;
• Ferramentas para verificação de conformidade e interoperabilidade;
• Arquitetura para armazenamento de conteúdo;
• Arquitetura que disponibilize interatividade ao usuário final.
41

2.7 METODOLOGIA

A metodologia para o desenvolvimento do aplicativo “Arquivo TV” utiliza a


IDE (Integrated Development Environment) NetBeans 6.5 na plataforma Windows, simulando
no emulador XleTView por se tratar de um emulador mais simples de ser usado e por haver
maior informação sobre o mesmo, também utiliza a ferramenta JUDE Professional versão 5.5
para o desenvolvimento da modelagem. Para o estudo, foram feitas pesquisas em artigos e
monografias sobre o assunto, em sites oficiais, revistas e livros sobre TV Digital Interativa,
mas como é uma tecnologia recente, há muitas dificuldades em se encontrar material sobre a
tecnologia.
O modelo de processo utilizado para o desenvolvimento do aplicativo é o
Iterativo Incremental, onde cada incremento é desenvolvido, validado e integrado ao sistema.
Neste processo, o primeiro incremento satisfaz os requisitos mais críticos, assim, com os
incrementos iniciais obtêm-se informações sobre os requisitos posteriores do sistema,
diminuindo o risco de falha geral do projeto.
Para a execução dos vídeos é preciso converter os mesmos para um formato
suportado pelo emulador XleTView. Utiliza-se o software Super para a conversão dos vídeos
na extensão .mov com codificação de vídeo H.263 e de áudio A-law. Para fazer a instalação
do aplicativo “Arquivo TV” e o Sistema Administrativo utiliza-se o software Inno Setup.
No desenvolvimento da aplicação utiliza-se as APIs JavaTV, HAVi e DAVIC,
onde os conhecimentos foram obtidos através de alguns exemplos de códigos-fonte de
aplicativos para TV Digital disponíveis em sites, e através destes exemplos foram
desenvolvidos aplicações testes para um melhor conhecimento da tecnologia. Também foram
adquiridos conhecimentos em programação para a linguagem Java, utilizando como principal
referência o livro Java Como Programar Edição 6 de Deitel e Deitel (2005).
Na classe principal há uma cena onde os vídeos são exibidos e a aplicação é
exibida na camada superior à dos vídeos. Usa-se a extensão JMF da API JavaTV para o
controle dos vídeos. Utiliza-se também a linguagem XML para o agendamento dos vídeos e
conteúdo das informações e o framework JUnit para os testes de alguns componentes do
aplicativo.
42

2.8 CONSIDERAÇÕES FINAIS

Neste capítulo foi apresentado os conceitos das APIs JavaTV, HAVi e DAVIC,
além das bibliotecas comuns da linguagem Java e a metodologia de pesquisa do
desenvolvimento do aplicativo “Arquivo TV”. No próximo capítulo será apresentado como o
aplicativo irá funcionar e também a modelagem do mesmo.
43

3 APLICAÇÃO PARA TV DIGITAL

3.1 CONSIDERAÇÕES INICIAIS

Neste capítulo é apresentada a modelagem do aplicativo desenvolvido


utilizando o modelo de desenvolvimento Iterativo Incremental, exibindo seus requisitos
funcionais e não-funcionais, diagrama de casos de uso, diagramas de classes e diagramas de
seqüência, com toda a especificação do aplicativo.

3.2 O APLICATIVO: “ARQUIVO TV”

O desenvolvimento de aplicativos para TV Digital é diferente de uma aplicação


para o computador. As aplicações de TV geralmente são pequenas, devido às limitações de
memória e de processamento (Eli Cândido Júnior, 2008).
Neste projeto, desenvolveu-se uma aplicação que executa no middleware
MHP, utilizando a linguagem Java (JDK versão 6.0 update 13) e as APIs JavaTV, HAVi e
DAVIC. Utilizou-se o IDE Net Beans 6.5 para a codificação e o emulador XleTView (versão
0.3.6) para a execução.
A aplicação desenvolvida, “Arquivo TV”, permite ao telespectador assistir
vídeos disponibilizados pela emissora, onde o mesmo pode interagir com diversas
funcionalidades. A principal funcionalidade disponível é o agendamento em uma determinada
data e horário. Ao iniciar-se, o aplicativo verifica se existe algum agendamento já efetuado,
através da consulta de um arquivo de configuração em XML, também verifica se o
telespectador optou por terminar de assistir a um vídeo já iniciado anteriormente. Caso algum
dos vídeos agendados for excluído do servidor ou a data do agendamento for expirada, o
telespectador é informado e o agendamento é excluído. O telespectador poderá navegar pela
aplicação através de um menu principal, podendo requisitar ajuda para navegação, pausar,
consultar informações, controlar o áudio, alternar e adiantar ou retroceder o vídeo que está
44

sendo exibido. Os vídeos são armazenados de acordo com sua classificação em pacotes em
um diretório do servidor da emissora, onde os telespectadores podem acessá-los através de um
sub-menu para assistirem de imediato ou efetuar um agendamento. No agendamento, o
telespectador escolhe o pacote e posteriormente o vídeo pertencente ao mesmo, após isso, o
telespectador define o horário que deseja agendar, sendo que esta informação do horário fica
gravada em um arquivo XML. Quando o vídeo agendado estiver para começar o telespectador
será avisado por meio de mensagem na tela, perguntando se o mesmo deseja assisti-lo ou
continuar vendo a programação corrente. Em caso de resposta negativa, o agendamento é
cancelado; em caso de resposta positiva, o vídeo agendado será iniciado, interrompendo a
programação atual. O Telespectador poderá agendar no máximo dez vídeos e também poderá
excluir qualquer agendamento efetuado.
O administrador do servidor da emissora poderá adicionar ou remover pacotes
e vídeos sem que o código fonte do aplicativo sofra alteração. Para adicioná-los ou removê-
los, basta o administrador acessar o sistema administrativo do aplicativo ArquivoTV e fazer
as devidas alterações, o administrador também poderá incluir e remover as informações sobre
os vídeos adicionados. Todas as informações existentes serão armazenadas em arquivos
configurados em XML.

3.3 REQUISITOS DO SISTEMA

Neste tópico será apresentada a lista de requisitos do sistema que são


classificados em requisitos funcionais e requisitos não funcionais, onde os funcionais
descrevem o que o aplicativo “Arquivo TV” e o Sistema Administrativo deve fazer e os não
funcionais fixam restrições sobre como os requisitos funcionais serão implementados.
45

3.3.1 Declaração dos Requisitos Funcionais e Não-Funcionais

Requisitos Não Funcionais


Nome Restrição Categoria Desejável Permanente
NF1: Definir Somente serão Interface (X) ()
cores usadas utilizadas as cores
no aplicativo vermelha, branca,
preta, amarela e azul.
NF2: Definir O aplicativo chamará Interface () (X)
nome e “Arquivo TV” com o
logotipo da logotipo baseado nas
aplicação cores da aplicação.

NF3: Utilizar O middleware Software () (X)


Middleware instalado no set-top
MHP box deverá ser o MHP.

Requisitos Funcionais
F1: Exibir Vídeos Sequencialmente Oculto (X)
Descrição: Os vídeos serão exibidos em sequência caso o telespectador não
interrompa a programação corrente. Havendo interrupção, a sequência continuará a
partir do vídeo escolhido pelo telespectador.
F2: Mostrar / Ocultar Menu Principal Evidente (X)
Descrição: O Menu Principal aparecerá na tela da aplicação toda vez que for
chamado, onde o telespectador pode navegar pelos seus sub-menus. O telespectador
também poderá ocultá-lo quando ele não estiver sendo usado.
F3: Mostrar / Ocultar Menu de Ajuda Evidente (X)
Descrição: O Menu de Ajuda aparecerá na tela toda que o telespectador chamá-lo.
O telespectador também poderá ocultá-lo.
F4: Pausar Vídeo Evidente (X)
Descrição: O telespectador poderá pausar a execução do vídeo corrente e continuar
a execução do vídeo.
46

F5: Mostrar Informações dos Vídeos Evidente (X)


Descrição: O telespectador poderá requisitar as informações do vídeo corrente.
F6: Mostrar Listagem de Pacotes Evidente (X)
Descrição: O telespectador poderá listar os pacotes de vídeos existentes no servidor
através do sub-menu Pacotes.
F7: Mostrar Listagem de Vídeos Evidente (X)
Descrição: O telespectador poderá listar os vídeos existentes no servidor através do
sub-menu Vídeos, onde é mostrado os vídeos do pacote corrente.
F8: Alternar entre os vídeos e pacotes Evidente (X)
Descrição: O telespectador poderá alternar entre os pacotes e vídeos através de seus
sub-menus Pacotes e Vídeos respectivamente.
F9: Agendar Vídeos Evidente (X)
Descrição: O telespectador poderá agendar um vídeo através do sub-menu Agendar
Vídeos, informando o pacote, vídeo e o horário que deseja assistir, limitado a 10
agendamentos.
F10: Encerrar Aplicativo Evidente (X)
Descrição: O telespectador poderá encerrar o aplicativo através do sub-menu Sair.
F11: Adicionar Vídeos e ou Pacotes Evidente (X)
Descrição: O Administrador do servidor poderá adicionar pacotes e ou vídeos
através do sistema administrativo do aplicativo ArquivoTV.
F12: Remover Vídeos e ou Pacotes Evidente (X)
Descrição: O Administrador do servidor poderá remover pacotes e ou vídeos
através do sistema administrativo do aplicativo ArquivoTV, onde as suas
respectivas informações também serão removidas.
F13: Adicionar Informações Evidente (X)
Descrição: O Administrador do servidor poderá adicionar informações sobre os
vídeos através do sistema administrativo do aplicativo ArquivoTV quando os criar.
F14: Alterar Áudio Evidente (X)
Descrição: O telespectador poderá aumentar ou diminuir o áudio através das teclas
‘+’ e ‘-‘ do controle remoto do set top-box.
F15: Gravar Agendamento Oculto (X)
Descrição: O sistema irá gravar em um arquivo XML as informações sobre o
47

agendamento efetuado pelo telespectador.


F16: Ler Agendamento Oculto (X)
Descrição: O sistema irá ler o arquivo XML que contém as informações sobre os
agendamentos toda vez que for iniciado.
F17: Cancelar Agendamento Evidente (X) Oculto (X)
Descrição: O sistema irá cancelar o agendamento do aplicativo se o telespectador
negar a execução do vídeo na data e horário agendado. O agendamento também é
cancelado caso a data marcada para o agendamento do vídeo estiver expirada, ou se
o usuário excluí-lo através do aplicativo.
F18: Exibir Vídeo Interrompido Evidente (X)
Descrição: O telespectador poderá interromper a execução do vídeo ao encerrar o
aplicativo e desejar continuar assistindo o vídeo no momento em que foi
interrompido quando iniciar o aplicativo novamente.
F19: Pular ou Retroceder Vídeo Evidente (X)
Descrição: O telespectador poderá passar uma parte do vídeo para frente
pressionando a tecla cerquilha, ou retroceder uma parte do vídeo pressionando a
tecla asterisco.
48

3.4 CASOS DE USO

Neste tópico será apresentada a lista de casos de uso, o diagrama de casos de


uso e os três principais casos de uso do aplicativo no modo expandido. Um caso de uso
representa uma unidade de interação entre o usuário e o sistema.

3.4.1 Lista de Casos de Uso

• C1: Iniciar Aplicação;


• C2: Navegar Pelo Aplicativo;
• C3: Mostrar Informação;
• C:4 Mostrar Menu Principal;
• C:5 Listar Pacote;
• C:6 Listar Vídeo;
• C:7 Agendar Vídeo;
• C:8 Cancelar Agendamento;
• C:9 Encerrar Aplicação;
• C:10 Gerenciar Pacotes;
• C:11 Gerenciar Vídeos.
49

3.4.2 Casos de Uso no Modo Expandido

Caso de Uso: Iniciar Aplicação.


Ator: Telespectador.
Finalidade: Inicia a Aplicação “Arquivo TV”.
Tipo: primário, essencial.
Visão Geral: Telespectador inicia aplicação e os vídeos começam a serem exibidos
automaticamente.

Sequência Típica de Eventos


Ação do Ator Resposta do Sistema

1 – Telespectador executa a aplicação. 2 – Aplicativo prepara execução.

5 – Telespectador lê informação. 3 – Aplicativo lê informações sobre vídeos


agendados.
4 – Retorna informação de aplicação sendo
carregada.
6 – Inicia a aplicação.

7 – Encerra a operação.

Sequências Alternativas
4a – Retorna informação sobre agendamento(s) expirado(s). Executar caso de uso Cancelar
Agendamento.
4b – Retorna informação sobre vídeo excluído do servidor. Executar caso de uso Cancelar
Agendamento.
50

Caso de Uso: Listar Vídeo.


Ator: Telespectador.
Finalidade: Lista os Vídeos de um Determinado Pacote.
Tipo: primário, essencial.
Visão Geral: Telespectador pressiona o botão para Listar os vídeos, os vídeos são listados de
acordo com o pacote atual, o telespectador escolhe o vídeo para assistir.

Sequência Típica de Eventos


Ação do Ator Resposta do Sistema

1 – Telespectador pressiona botão para listar 2 – verifica qual o pacote atual.


os vídeos.
4 – Telespectador escolhe o vídeo que 3 – Retorna os vídeos.
deseja assistir.
5 – Retorna o vídeo que o telespectador
escolheu.
6 – Exibe o vídeo no aplicativo.

7 – Encerra operação.
51

Caso de Uso: Agendar Vídeo


Ator: Telespectador.
Finalidade: Agenda um Vídeo Específico.
Tipo: primário, essencial.
Visão Geral: Telespectador pressiona o botão para Agendar Vídeo, escolhe o pacote desejado
e escolhe o vídeo passando data e horário para agendamento.

Sequência Típica de Eventos


Ação do Ator Resposta do Sistema

1 – Telespectador pressiona botão para 2 – Exibe lista de pacotes existentes.


agendar os vídeos.
3 – Telespectador escolhe o pacote do qual 4 – Exibe lista de vídeos do pacote
deseja agendar o vídeo. escolhido.
5 – Telespectador escolhe o vídeo para 6 – Confirma o vídeo.
agendá-lo.
7 – Telespectador informa data e horário. 8 – Confirma data e horário do
agendamento.
10 – Telespectador Confirma informações. 9 – Mostra informações sobre o
agendamento.
11 – Encerra operação.

Sequências Alternativas
6a – Vídeo já agendado. Repetir operação.
8a – Data e ou horário incorreto. Repetir operação.
8b – Horário já possui vídeo agendado. Repetir operação.
10a – Telespectador não confirma informações. Executar caso de uso Cancelar Agendamento.
52

Caso de Uso: Navegar Pelo Aplicativo


Ator: Telespectador.
Finalidade: Navegar Pela Cena Onde o Vídeo é Executado.
Tipo: primário, essencial.
Visão Geral: Telespectador pressiona a tecla do controle remoto virtual correspondente ao que
ele deseja fazer dentre as opções disponíveis e o aplicativo responde de acordo com a tecla
pressionada.

Sequência Típica de Eventos


Ação do Ator Resposta do Sistema

1 – Telespectador pressiona a tecla do 2 – Verifica tecla pressionada.


controle remoto virtual desejada.
3 – Responde ao telespectador.

4 – Encerra operação.

Sequências Alternativas
2a – Tecla sem função. Repetir Operação.
2b – Tecla ‘vermelha’ pressionada. Executar caso de uso Mostrar Menu Principal.
2c - Tecla ‘verde’ pressionada. Pausar / Despausar Vídeo.
2d - Tecla ‘amarela’ pressionada. Mostrar / Ocultar Ajuda.
2e – Tecla ‘azul’ pressionada. Executar caso de uso Mostrar Informação.
2f – Seta ‘para a direita’ pressionada. Passar para o próximo vídeo.
2g – Seta ‘para a esquerda’ pressionada. Voltar para o vídeo anterior.
2h – Seta ‘para cima’ pressionada. Passar para o próximo pacote.
2i – Seta ‘para baixo’ pressionada. Passar para o pacote anterior.
2j – Tecla ‘asterisco’ pressionada. Pula a execução para a próxima parte do vídeo.
2l – Tecla ‘cerquilha’ pessionada. Volta a execução para a parte anterior do vídeo.
2m – Tecla ‘mais’ pressionada. Aumenta o áudio.
2n – Tecla ‘menos’ pressionada. Diminui o áudio.
53

3.4.3 Diagrama de Casos de Uso

Um diagrama de casos de uso descreve um cenário que mostra as


funcionalidades do sistema do ponto de vista do usuário. O extend em um caso de uso é uma
indicação de que outros casos de uso poderão ser adicionados a ele. A figura abaixo ilustra o
Diagrama de Casos de Uso do projeto:

Figura 12 – Diagrama de Casos de Uso


54

A matriz abaixo mostra a qual caso de uso (seção 3.4.1 deste capítulo) cada
requisito funcional (seção 3.3.1 deste capítulo) pertence.

Casos de Uso
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11
F1 X
F2 X X
R F3 X
e F4 X
q F5 X
. F6 X
F7 X
F F8 X
u F9 X
n F10 X
c F11 X X
i F12 X X
o F13 X
n F14 X
a F15 X
i F16 X
s F17 X
F18 X
F19 X

Os requisitos funcionais estão presentes nos casos de uso no local indicado


com um X. Alguns requisitos estão presentes em mais de um caso por se tratar de funções
similares, porém a execução é feita de maneira diferente para cada caso de uso.
55

3.5 DIAGRAMAS DE CLASSES

A figura a seguir representa o Diagrama de Classes do aplicativo “Arquivo


TV”.
56

Figura 13 – Diagrama de Classes: Aplicativo “Arquivo TV”


57

A figura a seguir representa o Diagrama de Classes do Sistema Administrativo.

Figura 14 – Diagrama de Classes: Sistema Administrativo


58

3.6 DIAGRAMA DE SEQUÊNCIA

Quando o telespectador pressiona o botão Agendar Vídeo, é disparado o


método controlaMenuPacote(), onde é exibido o menu para a escolha de pacotes. Escolhido o
pacote, é chamado o método mudaPacote() que pega a informação do pacote e cria um menu
para a escolha dos vídeos. Assim que o telespectador escolher o vídeo o método
mudaVideo(int index) é disparado, e a tela muda para o menu de agendamento pedindo data e
hora para o agendamento. Após adicionar a data e a hora o agendamento é salvo pelo método
salvaAgendamento() e uma verificação constante sobre a hora do sistema é realizada. A figura
abaixo mostra o Diagrama de Sequência do caso de uso Agendar Vídeo.

Figura 15 – Diagrama de Sequência: Agendar Vídeo


59

Quando o telespectador pressiona o botão Sair, é chamado o método


setVisible(true) exibindo um menu para encerrar a aplicação. Neste menu pode-se escolher
por encerrar a aplicação normalmente ou optar por terminar de assistir o vídeo corrente mais
tarde quando reeiniciar a aplicação. Optando por assistir o vídeo mais tarde, o método
criaXmlStop() é chamado criando um arquivo com as informações do vídeo e a posição de
parada do vídeo, logo após a aplicação é encerrada pelo método destroyXlet(true). A figura
abaixo mostra o Diagrama de Sequência do caso de uso Encerrar Aplicação.

Figura 16 – Diagrama de Sequência: Encerrar Aplicação

3.7 CONSIDERAÇÕES FINAIS

Neste capítulo foi apresentado o aplicativo “Arquivo TV” com suas


especificações, seus requisitos, além do diagrama de casos de uso, os diagramas de classes, e
os diagramas de sequência. No próximo capítulo será abordado os testes do sistema e seus
resultados.
60

4 TESTES E RESULTADOS

4.1 CONSIDERAÇÕES INICIAIS

Neste capítulo é apresentada a simulação da transmissão do aplicativo


“Arquivo TV” em um ambiente real, testes, resultados, dificuldades encontradas e propostas
para projetos futuros.

4.2 FUNCIONAMENTO EM AMBIENTE REAL

Com a ausência do sinal digital de TV no ambiente local de desenvolvimento,


o aplicativo foi desenvolvido para rodar em um middleware, usando um emulador que simula
o ambiente de TV Digital. Em um ambiente real, seriam necessárias adaptações para que o
aplicativo funcionasse corretamente, como a implementação de um canal de retorno (conexão
à Internet) e mudança no armazenamento de arquivos.
Segundo Cândido Júnior (2008), uma estação de TV (Servidor de Geração de
Conteúdo) transmitirá (via satélite, terrestre ou cabo) o sinal de vídeo para os set-top boxes. O
telespectador pode executar a aplicação, e através do canal de retorno solicita os vídeos
escolhidos nos Servidores de Aplicações Interativas, conforme mostra a Figura 17.
61

Figura 17 – Funcionamento em um ambiente real


Fonte: Eli Cândido Júnior, 2008.

O aplicativo inicialmente encontra-se no servidor da emissora e é enviado


juntamente com o sinal digital ao set-top box do telespectador. Quando é selecionado um
vídeo para assistir em tempo real, a solicitação é enviada à emissora através de seu canal de
retorno e a mesma processa e o envia ao telespectador com suas respectivas informações. Ao
efetuar um agendamento, as informações como a data e a hora são salvas no set-top box, o
qual verifica constantemente a hora agendada. No horário marcado, é solicitado o vídeo
agendado à emissora pelo canal de retorno, e as informações sobre o agendamento são
atualizadas no set-top box.

4.3 TESTES DO SISTEMA E RESULTADOS OBTIDOS

Segundo Sommerville (2007), as duas principais atividades para os testes são:


Testes de Componentes e Teste de Sistema, que foram utilizados no aplicativo “Arquivo TV”.
Nos Testes de Componentes foi utilizado o framework de testes JUnit onde
algumas classes foram testadas separadamente afim de encontrar erros nas chamadas de
métodos e declaração dos objetos, verificando se os valores dos atributos são os esperados.
62

Em outras classes não foi possível utilizar o JUnit, pois a execução das mesmas só é possível
no emulador XleTView, onde os testes foram feitos com inserções de saídas indicando se
houve erro através do prompt do sistema em tempo de execução.
A Figura 18 mostra o resultado de um teste realizado pelo JUnit na classe
Aplicativo, onde ocorreram alguns tratamentos de exceções que foram feitos para garantir que
objetos não pudessem ser instanciados se não estivessem em execução com algum
middleware.

Figura 18 – Resultado do Teste da Classe Aplicativo com JUnit

Executando o aplicativo “Arquivo TV” pelo emulador XleTView, todos os


objetos são intanciados e nenhuma exceção é gerada. A figura a seguir mostra o resultado no
prompt do sistema.
63

Figura 19 – Resultado da iniciação do aplicativo pelo XleTView

A Figura 20 mostra o teste realizado pelo JUnit na classe responsável pela


criação do objeto, que constantemente verifica a data e hora agendada. Se estiver no horário
agendado, o teste exibe uma exceção com a mensagem “Aplicativo não iniciado”, pois
somente será iniciado se for executado no emulador XleTView.
64

Figura 20 – Resultado do Teste da verificação do agendamento com JUnit

Além dos testes realizados no JUnit, foram feitas as seguintes verificações:


• Se a cena em que o aplicativo é exibido foi criada corretamente - caso o
middleware não suporte os objetos da API HAVi, que são necessários para
criar a cena, a aplicação não é iniciada;
• A integridade do vídeo e suas informações - o administrador só conseguirá
excluir o vídeo, se o mesmo não estiver em uso pelo telespectador. O
65

administrador deverá retirar o aplicativo “Arquivo TV” da transmissão para


que não haja perda de dados para os telespectadores;
• A criação do objeto responsável pela execução do vídeo - caso o middleware
não suporte a API JMF o aplicativo é encerrado;
• A ausência de vídeos e de pacotes - o aplicativo “Arquivo TV” continuará
sendo executado mesmo com a ausência de vídeos e pacotes.
Já no Sistema Administrativo os principais testes realizados foram:
• Verificar a integridade dos diretórios principais – caso o diretório de Vídeos e
o de Informações não for localizado, o Sistema Administrativo não é iniciado.
• Verificar a existência de pacotes ao adicionar um vídeo - caso não existir
pacotes, o administrador é informado e o menu de inserção é aberto em
seguida.

No Teste de Sistema foram realizados testes funcionais onde a cada


incremento, os requisitos funcionais já implementados eram testados. Ao final da
implementação, foram realizados testes para verificar se o aplicativo “Arquivo TV” e o
Sistema Administrativo atendem aos requisitos.
O desempenho do aplicativo “Arquivo TV” no emulador XletView foi
satisfatório, atendendo a requisição de vídeos em um tempo moderado. Apenas em alguns
momentos houve um tempo de espera maior devido ao processamento de onde o aplicativo
está sendo emulado.
Os resultados obtidos foram satisfatórios, de modo que foi possível
disponibilizar vídeos para serem assistidos em tempo real ou agendados pelo telespectador em
uma determinada data e horário, e fornecer informações sobre os vídeos que foram
disponibilizados. A Figura 21 mostra o aplicativo no momento em que é requisitado ao
telespectador o início do vídeo agendado.
66

Figura 21 – Agendamento sendo iniciado

A Figura 22 mostra o resultado com as informações sobre o vídeo que está


sendo exibido.

Figura 22 – Tela com as informações do vídeo exibido


67

4.4 DIFICULDADES ENCONTRADAS

No início do projeto, a maior dificuldade encontrada foi a obtenção de


informação para o desenvolvimento, pois a documentação da API HAVi não estava
disponível no site oficial.
Quanto ao emulador XleTView, as dificuldades encontradas foram a de
descobrir o que era preciso para que o emulador fosse executado e a maneira de trabalhar com
arquivos de vídeos. Outra dificuldade foi encontrar o formato ideal de áudio e vídeo para que
o arquivo não ocupasse muito espaço, mantendo a qualidade de execução, pois várias
monografias, artigos e fóruns citavam que o único formato suportado pelo XleTView era o de
extensão avi com codec Cinepack. Após vários testes, concluiu-se que o formato ideal de
vídeo é o H.263 e de áudio A-Law, com extensão mov. Além disso, o emulador possui
algumas limitações que interferiram no desenvolvimento do projeto como, por exemplo, a não
aceitação de transparências gráficas em cima da camada de vídeo quando se trabalha
juntamente com a biblioteca JMF e a perda de foco no aplicativo quando o emulador é
minimizado no computador.
A principal dificuldade foi a de não encontrar exemplos com código-fonte
implementados de aplicações que manipulam vídeos, pois todos os exemplos encontrados
apenas exibiam um vídeo que era configurado no emulador. Após muita pesquisa, encontrou-
se um exemplo que manipulava dois vídeos, e mesmo assim o código encontrado continha
alguns erros. Com isso, ganhou-se confiança para trabalhar em uma aplicação que
manipulasse vários arquivos de vídeo.
No Sistema Administrativo, a principal dificuldade encontrada foi a de copiar
arquivos de vídeo para o diretório do sistema, pois quando cópia era realizada, o sistema
ficava travado até a cópia ser concluída. Após alguns estudos descobriu-se que era necessária
a utilização de threads para que o sistema não ficasse aguardando a cópia, liberando a
aplicação para uso.
Durante os testes do aplicativo “Arquivo TV”, não foi possível realizar o teste
de componentes do JUnit em todas as classes, como citado anteriormente, pois em algumas
classes não se conseguiu instanciar objetos e alguns atributos e métodos só são executados no
emulador XleTView, como por exemplo, o xlet e o player, que são os dois objetos mais
utilizados, não puderam ser instanciados.
68

4.5 PROJETOS FUTUROS

Como projetos futuros pode-se implementar esta proposta utilizando o


middleware Ginga, através da linguagem Java com a API padrão Java DTV, que foi
desenvolvida baseada na API JavaTV e na linguagem NCL. Esta API foi escolhida pelo
padrão brasileiro de TV Digital.
O projeto também pode servir de base para emissoras que necessitem de
manipulação de arquivos de vídeos na interatividade com a TV Digital, implementando-se um
canal de retorno para a realização da interatividade permanente, fazendo com que a
transmissão dos vídeos seja feita por streaming.

4.6 CONSIDERAÇÕS FINAIS

Neste capítulo foi apresentado o funcionamento do aplicativo em ambiente


real, além dos seus requisitos de instalação, explicação de seu funcionamento, os principais
testes e resultados, além de demonstrar as principais dificuldades encontradas e propostas
futuras.
69

CONCLUSÃO

Conclui-se que o objetivo principal deste projeto, que era desenvolver um


aplicativo interativo capaz de manipular vídeos realizando agendamentos que são
armazenados no set-top box e mostrando as suas respectivas informações, foi alcançado.
Com a TV Digital, os telespectadores terão participação ativa no conteúdo
fornecido pela emissora, onde o interesse em assistir televisão aumentará efetivamente pelo
simples fato de o mesmo interagir com o aplicativo. Baseado nisso, com o projeto proposto, o
telespectador tem muito mais entretenimento no seu dia-a-dia, pois pode escolher o que deseja
assistir, não dependendo da programação comum da emissora.
A linguagem Java utilizada no projeto, por se tratar de uma linguagem muito
ampla, pode-se programar para diversas plataformas, com APIs de fáceis acessos, dentre elas
a API JavaTV para atender a programação da TV Digital, levando em consideração que os
set-top boxes dão suporte a esta linguagem.
Com o emulador XleTView, foi relatado que o mesmo fornece funcionalidades
básicas paras os aplicativos para TV Digital, onde pôde-se desenvolver o aplicativo apesar de
suas limitações. Foi utilizado este emulador por ser mais popular, além de ser de código
aberto e gratuito.
Como extensões deste trabalho pode-se desenvolver aplicativos manipulando
arquivos de vídeos baseados no middleware Ginga utilizando a API Java DTV e também
serve de base para emissoras que necessitem desta manipulação, porém é necessária a
implementação de um canal de retorno utilizando interatividade permanente.
70

REFERÊNCIAS

ABERT. Associação Brasileira de Emissoras de Rádio e Televisão. Disponível em:


<http://www.abert.org.br/D_mostra_clipping.cfm?noticia=122884>. Acesso em: 08 de mai.
2009.

ALENCAR, MARCELO SAMPAIO DE. Televisão Digital – Editora Érica, 2007.

APRENDA NA WEB. Disponível em:


<http://www.aprendanaweb.com.br/site/index.php/News/TV-Digital/O-pacote-JavaTV.html>.
Acesso em: 08 de abr. 2009.

BRENNAND, EDNA; LEMOS, GUIDO. Televisão Digital Interativa – Reflexões, Sistemas e


Padrões. Editora Mackenzie e Editora Horizonte, 2007.

CÂNDIDO JÚNIOR, ELI. Utilização da API JavaTV para o Desenvolvimento de Aplicações


para a TV Digital Interativa. Universidade do Oeste Paulista de Presidente Prudente, 2008.

CARVALHO, SANDRA RÉGIA CHARLES; ARAÚJO, VICTOR TEIXEIRA. Emuladores


para TV Digital, 2007.

COSMO ONLINE. Ciência e Tecnologia. Disponível em:


<http://www.cosmo.com.br/noticia/21685/2009-02-16/interatividade-na-tv-digital-uma-
realidade-distante.html>. Acesso em: 25 de mai. 2009.

CPqD. Centro de Pesquisa e Desenvolvimento Padre Roberto Landell de Moura. Disponível


em: <www.cpqd.com.br>. Acesso em 07 de abr. 2009.

CUNHA, CARLOS EDUARDO; KARLSSON, BENGT FERNANDO; HEMMLEPP,


PAULO MARTINELLI. HAVi, DAVIC e MHP. Disponível em:
<www.cin.ufpe.br/~ceac/SMD.ppt>. Acesso em: 12 de abr. 2009.

DTV. Site Oficial da TV Digital Brasileira. Disponível em: <http://www.dtv.org.br>. Acesso


em: 01 de abr. 2009.

DEITEL, Harvey M.; DEITEL, Paul J. Java Como Programar – Sexta Edição. Editora
Pearson Prentice Hall, 2005.
71

FOLHA ONLINE. Informática. Disponível em:


<http://www1.folha.uol.com.br/folha/dinheiro/ult91u105790.shtml> e
<http://www1.folha.uol.com.br/folha/informatica/ult124u561569.shtml>. Acesso em: 08 de
mai. 2009.

G1. Disponível em: <http://g1.globo.com/Noticias/Tecnologia/0,,MUL241856-6174,00-


ENTENDA+COMO+FUNCIONA+A+INTERATIVIDADE+NA+TV+DIGITAL.html>.
Acesso em: 06 de abr. 2009.

GINGA. TV Digital se faz com Ginga. Disponível em: <http://www.ginga.org.br>. Acesso


em: 07 de abr. 2009.

GUIA COMO SE FAZ ESPECIAL. TV Digital sem segredos – Editora Escala, 2008.

HAVi. Home Audio Video Interoperability. Disponível em: <www.havi.org>. Acesso em: 10
de abr. 2009.

IMAGE GROUP. Instituto de Telecomunicações, Instituto Superior Técnico. Disponível


em:<http://www.img.lx.it.pt/~fp/cav/ano2008_2009/Trabalhos_MEEC_2009/Artigo_MEEC_
5/HTML%20HDTV%20Grupo%205/HTML/hd.html>. Acesso em: 25 de mar. 2009.

INTERACTIVE TV WEB. Disponível em: <www.interactivetvweb.org>. Acesso em: 10 de


abr. 2009.

JAVA FREE. Disponível em: <http://javafree.uol.com.br/wiki/Java%20TV>. Acesso em: 08


de abr. 2009.

MEIO BIT. Comunicação Digital. Disponível em: <http://meiobit.pop.com.br/meio-


bit/comunicacao-digital/receptor-usb-de-alta-resolucao-para-tv-digital>. Acesso em: 25 de
mai. 2009.

O GLOBO. Tecnologia. Disponível em:


<http://oglobo.globo.com/tecnologia/mat/2007/12/12/327561697.asp>. Acesso em: 03 de abr.
2009.

POZZO, DOUGLAS DAL. Aplicativos para Televisão Digital Interativa. Disponível em:
<http://www.enapet.ufsc.br/anais/APLICATIVOS_PARA_TELEVISAO_DIGITAL_INTER
ATIVA.pdf>. Acesso em: 08 de abr. 2009.
72

SOMMERVILLE, I. Engenharia de Software. 8º ed. São Paulo: Pearson Addison-Wesley,


2007.

SUN MICROSYSTEMS. Disponível em:


<http://java.sun.com/javame/technology/javatv/index.jsp>. Acesso em: 08 de mai. 2009.

TELECO. Conhecimento em Telecomunicações. Disponível em:


<www.teleco.com.br/pnad.asp>. Acesso em: 25 de mar. 2009.

THE MHP KNOWLEDGE PROJECT. The MHP-Guide. Disponível em:


<http://www.mhpkdb.org>. Acesso em: 08 de abr. 2009.

TUDO SOBRE TV. Disponível em: <www.tudosobretv.com.br/histortv/>. Acesso em: 25 de


mar. 2009.

TVDI. Grupo de Pesquisa em TV Digital Interativa. Disponível em:


<http://www.tvdi.inf.br/wiki/doku.php?id=javatv>. Acesso em 08 de abr. 2009.
73

GLOSSÁRIO

A
API: Application Programming Interface (ou Interface de Programação de Aplicativos) é um
conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas
funcionalidades por programas aplicativos que queiram apenas usar seus serviços.

B
Broadcast: é o processo pelo qual se transmite ou difunde determinada informação, tendo
com principal característica que a mesma informação está sendo enviada para muitos
receptores ao mesmo tempo.
Bytecodes: é o resultado de um processo semelhante ao dos compiladores de código-fonte
que não é imediatamente executável. É um estágio intermediário entre o código-fonte (escrito
numa linguagem de programação específica) e a aplicação final, sendo a sua vantagem
principal a dualidade entre a portabilidade e a ausência da necessidade do pré-processamento
típico dos compiladores.

C
Canal de retorno: canal que permite a aparelhos de TV e conversores digitais a enviarem
dados às emissoras de TV para oferecer serviço de TV interativa.
Codec: é o acrônimo de Codificador/Decodificador, dispositivo de hardware ou software que
codifica/decodifica sinais.

D
Decodificadores: Aparelhos que permitem a visualização de sinais anteriormente
codificados.
Demoduladores: Aparelhos que recuperam um sinal original transportado em uma onda
modulada.
74

F
Frame: é cada um dos quadros ou imagens fixas de um produto audiovisual.
Framework: é uma abstração que une códigos comuns entre vários projetos de software
provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade
específica, por configuração, durante a programação de uma aplicação. Ao contrário das
bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão
de Controle.
Full HD: Full High Definition, ou seja, Alta definição máxima, é a resolução máxima que
uma TV de alta definição do mercado alcança. Ao se chegar perto de uma TV de tubo normal,
percebe-se alguns ‘pontos’ na tela. Esses pontos são chamados de píxeis. Uma TV Full HD
tem 1920 pixels de resolução horizontal por 1080 linhas de resolução vertical, somando um
total de 2.073.600 dpi², o que permite um melhor detalhamento da imagem.

H
Hardware: é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos,
circuitos integrados e placas, que se comunicam através de barramentos.

I
Interoperabilidade: é a capacidade de um sistema (informatizado ou não) de se comunicar
de forma transparente (ou o mais próximo disso) com outro sistema (semelhante ou não). Para
um sistema ser considerado interoperável, é muito importante que ele trabalhe com padrões
abertos.
Interface: O conceito de Interface se expressa pela presença de uma ou mais ferramentas para
o uso e movimentação de qualquer sistema de informações, seja ele material, seja ele virtual.

J
JavaTV: é uma biblioteca Java que contempla a maior parte dos recursos necessários para a
operação de sistemas receptores de TV digital, simplificando assim o desenvolvimento de
softwares, uma vez que os programadores de aplicativos podem se voltar ao tema principal da
aplicação em desenvolvimento.
Java DTV: é um conjunto de APIs, que pode ser considerada uma única API dentro do
middleware Ginga-J e que, funcionalmente, substitui as APIs JavaTV, HAVi e DAVIC,
dentre outras.
75

JUnit: é um framework para desenvolvimento e execução de testes de componentes em


programas Java, que define um modelo de programação para a criação dos mesmos, onde é
disponibilizado uma classe chamada TestRunner para a execução dos testes.

M
Middleware: é a designação genérica utilizada para referir os sistemas de software que se
executam entre as aplicações e os sistemas operativos. O objetivo do middleware é facilitar o
desenvolvimento de aplicações, tipicamente aplicações distribuídas, assim como facilitar a
integração de sistemas legados ou desenvolvidos de forma não integrada.
Modulação: é o processo no qual a informação a transmitir numa comunicação é adicionada
a ondas eletromagnéticas.
Multiplexador: é um dispositivo que codifica as informações de duas ou mais fontes de
dados num único canal.

O
Obsolescência: é a condição que ocorre a um produto ou serviço que deixa de ser útil, mesmo
estando em perfeito estado de funcionamento, devido ao surgimento de um produto
tecnologicamente mais avançado.

P
Pixel: é o menor ponto que forma uma imagem digital, sendo que milhares de pixels formam
a imagem inteira, sendo que cada Pixel é composto por um conjunto de 3 pontos: verde,
vermelho e azul.
Prompt: é um Interpretador de comando responsável por tomar as ações efetivas conforme a
orientação do usuário através de comunicação textual.
Protocolo: é uma convenção ou padrão que controla e possibilita uma conexão, comunicação
ou transferência de dados entre dois sistemas computacionais. De maneira simples, um
protocolo pode ser definido como "as regras que governam" a sintaxe, semântica e
sincronização da comunicação.
Provedor: oferece principalmente serviço de acesso à Internet, agregando a ele outros
serviços relacionados, tais como "e-mail", "hospedagem de sites" ou blogs, entre outros.
76

R
Raios Catódicos: radiações onde os elétrons emergem do pólo negativo de um eletrodo,
chamado cátodo, e se propagam na forma de feixe de partículas negativas ou feixe de elétrons
acelerados.
Royalties: palavra de origem inglesa que se refere a uma importância cobrada pelo
proprietário de uma patente de produto, processo de produção, marca, entre outros, ou pelo
autor de uma obra, para permitir seu uso ou comercialização.

S
Selênio: Elemento químico de símbolo Se, é um não metal do grupo dos calcogênios, um dos
seus usos é para a fabricação de células fotoelétricas.
Set-Top Box: é o equipamento que permite aos atuais televisores receber e decodificar os
novos sinais de Televisão Digital transmitidos pelas emissoras, além de fornecer um canal de
retorno que pode ser ligado à rede telefônica ou de transmissão de dados em alta velocidade,
permitindo que o telespectador forneça algum tipo de informação ao programa assistido,
originando o fator interatividade. Conterá um ou mais microprocessadores para executar o
sistema operacional, memória para poder armazenar temporariamente alguns dados, um
decodificador de vídeos em formato MPEG e processadores específicos para trabalhar com os
diversos canais de áudio.
Streaming: é uma forma de distribuir informação multimídia numa rede através de pacotes.
Ela é frequentemente utilizada para distribuir conteúdo multimídia através da Internet. Em
streaming, as informações da mídia não são usualmente arquivadas pelo usuário que está
recebendo a stream, a mídia geralmente é constantemente reproduzida à medida que chega ao
usuário se a sua banda for suficiente para reproduzir a mídia em tempo real.
Suscetível: que envolve possibilidade de certa coisa.

T
Text fields: é uma área de linha que permite ao usuário a entrada de texto.
TV aberta: possui canais onde as emissoras realizam transmissão de sinal gratuita a todos os
telespectadores.
77

W
Widescreen: é o termo em inglês para se definir Tela Larga, cujos aparelhos com essa
característica possuem razão de aspecto de 16 x 9. São ideais para se ver filmes, pois possui
uma imagem mais próxima da visão humana.
78

ANEXOS

ANEXO A: CLASSES ADICIONAIS

Foi necessário modificar o botão fornecido pela API HAVi, para que as cores
do botão pudessem ser mudadas quando um botão perde ou ganha foco e para que fosse
possível controlar a posição do rotulo do botão quando o menu de vídeos agendados está
sendo exibido.
A classe HButtonColor é a responsável pela mudança, esta classe extend da
classe HTextButton da API HAVi. Abaixo as figuras ilustram o diagrama da classe e as
diferenças dos botões da classe HButtonColor e HTextButton no aplicativo “Arquivo TV”.

Diagrama da classe HButtonColor


79

Botões com a classe HButtonColor com foco no terceiro botão (Agendar Vídeo)

Botões com a classe HTextButton com foco no primeiro botão (Vídeo)


80

Também foi necessário criar uma classe que estabelecesse um limite de


caracteres a ser adicionado e permitisse somente inserção de números na caixa de texto
(JTextField) da API Swing, pois no Sistema Administrativo ao adicionar informações sobre os
pacotes e vídeos eram necessários estes requisitos.
A classe JTextFieldLimit é a responsável. Esta classe extend da classe
PlainDocument da API Swing, abaixo o diagrama da mesma.

Diagrama da classe JTextFieldLimit


81

ANEXO B: MANUAL DO USUÁRIO

REQUISITOS DE INSTALAÇÃO

Para que o aplicativo “Arquivo TV” e o Sistema Administrativo funcionem


corretamente é necessário observar alguns requisitos minímos: o computador que irá recebê-
los deverá possuir o Sistema Operacional Windows XP ou superior, processador de 1.6 Ghz,
placa de vídeo de 128 Mb para simular o aplicativo “Arquivo TV” no emulador XleTView e
uma placa de som.
Para a sua instalação executa-se o arquivo “Setup.exe” que se encontra no
diretório raiz do CD. Ao ser executado, pede-se o idioma ao usuário para iniciar o programa
de instalação. Após isso, clica-se em avançar. É apresentado o contrato do sistema, onde o
usuário seleciona a opção “Eu aceito os termos do contrato” e clica em Avançar. O programa
de instalação pergunta se o usuário deseja adicionar ícones na área de trabalho ou na barra de
inicialização rápida do Windows, onde se o usuário desejar adicioná-los, basta selecionar as
opções e clicar em Avançar. Logo após, ao clicar em Instalar o aplicativo “Arquivo TV” e o
Sistema Administrativo será instalado no diretório padrão do computador do usuário.
Lembrando que para a execução do Sistema Administrativo o login padrão é
“administrador” e a senha padrão para o seu acesso é “admin2009”. Caso o usuário desejar
criar, alterar ou excluir logins e senhas, o mesmo deve acessar o arquivo “Login.xml” que se
encontra no mesmo local do Sistema Administrativo e alterar manualmente o arquivo XML
com as novas informações.
82

APRESENTAÇÃO DAS TELAS E FUNCIONAMENTO

Ao iniciar o Sistema Administrativo, primeiramente é exibido o logotipo da


aplicação. Em seguida é solicitado ao usuário o seu nome e a senha. Para sua autenticação, o
sistema verifica em um arquivo XML as informações correspondentes ao mesmo.

Tela de Login

Após a autenticação, é exibido o Menu Principal do sistema conforme a figura


a seguir. Através deste menu, é possível gerenciar os pacotes dos vídeos, onde pode-se criá-
los ou excluí-los; também é possível gerenciar os vídeos, podendo adicioná-los ou removê-los
dos pacotes existentes.
83

Menu Principal

Na janela “Gerenciar Pacotes”, ao adicionar um pacote, o sistema cria um


diretório com o nome dado pelo usuário no local padrão e cria-se um novo arquivo XML com
o mesmo nome para adicionar informações sobre os vídeos adicionados. Do mesmo modo, ao
excluir um pacote, o diretório e o arquivo XML pertencentes ao mesmo são excluídos,
juntamente com todos os seus vídeos.
A figura a seguir mostra o funcionamento da janela de “Gerenciar Pacotes”.
84

Janela Gerenciar Pacotes

Na janela “Gerenciar Vídeos”, é possível navegar, adicionar ou excluir um


vídeo. Para adicionar, o usuário escolhe um pacote, pressiona o botão Novo, preenche todas
as informações, adicionando também a foto e o caminho. Se o usuário não quiser adicionar o
vídeo, clica-se no botão Cancelar. Mas se quiser adicioná-lo, clica-se no botão OK, onde o
mesmo realiza uma cópia para o diretório do sistema e adiciona as informações no arquivo
XML pertencente ao pacote escolhido. Caso, durante a cópia do vídeo o usuário desista de
copiá-lo, clica-se em Cancelar Cópia.
A figura abaixo mostra o funcionamento da janela “Gerenciar de Vídeos”.

Janela “Gerenciar Vídeos”


85

Ao iniciar o emulador XleTView é apresentada sua tela com o logotipo do


aplicativo no fundo, como mostra a figura abaixo.

Tela inicial do emulador com o logotipo do aplicativo

Iniciada a aplicação, o telespectador pressiona o botão vermelho e é acionado o


Menu Principal, onde o mesmo pode listar os pacotes e vídeos, agendá-los e sair da aplicação,
fazendo isso através das teclas de navegação, e pelos seus respectivos botões podem ser
acionados pressionando o botão OK do controle remoto, conforme a figura a seguir.
86

Tela do Menu Principal

Ao listar os vídeos pressionando OK quando o botão vídeos estiver


selecionado, é apresentado ao telespectador os vídeos do pacote atual, conforme mostra a
figura abaixo.

Listagem de vídeos do pacote


87

Para escolher um vídeo, o telespectador deve navegar por entre os mesmos


através das setas do controle remoto para selecioná-lo e apertar OK. Para não ficar muita
informação na tela durante a execução, são criados sub-menus de até seis vídeos, onde pode-
se navegar pelos sub-menus através dos botões “+” ou “-“ para escolher o vídeo desejado.
O aplicativo também mostrará informações sobre os vídeos que estão sendo
executados. Durante a execução, o telespectador pode apertar o botão azul do controle
remoto, onde aparecem na tela o nome, ano, tipo, descrição e imagem referente ao vídeo,
como mostra a figura abaixo. Para ocultar as informações, basta apertar novamente o botão
azul ou o botão EXIT do controle remoto.

Tela com as informações do vídeo em execução

A principal funcionalidade do aplicativo é o agendamento de vídeos para uma


determinada data e horário. Para fazer isso, o telespectador, estando no Menu Principal, que
se acessa através do botão vermelho do controle remoto, deve-se navegar pelas setas até o
botão de Agendar Vídeos e pressionar OK. Com isso, aparecem os pacotes disponíveis para a
escolha, onde o telespectador o seleciona e pressiona OK. Logo após, o aplicativo lista todos
os vídeos, onde o telespectador seleciona qual deseja agendar e pressiona OK. Em seguida, o
aplicativo solicita ao telespectador a data e hora desejados para o agendamento como
88

mostrado a figura a seguir, e o mesmo informa estes dados ao aplicativo respeitando as regras
de agendamento, ou seja, não é permitido: agendar um vídeo em data e horários inválidos ou
ultrapassados, efetuar dois agendamentos com o mesmo nome e agendar vídeos diferentes
com a mesma data e horário. Respeitando estas regras, o aplicativo solicita ao telespectador a
confirmação do agendamento e o mesmo o confirma através do botão OK ou o cancela
através do botão EXIT.

Agendamento de vídeos

Confirmado o agendamento pelo telespectador é possível vê-lo através do


botão Agendar Vídeos, onde aparecem todos os vídeos agendados conforme mostra a próxima
figura.
89

Tela com os vídeos agendados

Através do Menu Agendar Vídeos também é possível excluir um agendamento


existente. Para isso após entrar no menu, deve-se escolher a opção de Excluir Agendamento,
seleciona-lo e apertar OK.
Como é mostrado através da figura a seguir, ao pressionar OK quando o botão
sair estiver selecionado, é solicitado ao telespectador o modo como deseja sair, se somente
deseja encerrar a aplicação ou gravando a posição do vídeo atual para terminar de assistí-lo
mais tarde. Escolhendo a última opção, as informações do vídeo são gravadas em um arquivo
XML juntamente com a sua posição de parada, retornando a esta posição na próxima vez que
o aplicativo for executado. Porém, se o telespectador escolher por continuar, pressiona-se o
botão azul do controle remoto, e o aplicativo retorna para o Menu Principal. Mas, se for
escolhida a opção sair, pressionando o botão EXIT do controle remoto, o aplicativo encerra a
sua operação sem gravar nenhuma informação no arquivo XML.
90

Tela do Menu Sair.

You might also like