92
JOSIMAR FERREIRA GUILHERME WELLINGTON CÉSAR GOMARIN DESENVOLVIMENTO DE UM APLICATIVO PARA TV DIGITAL USANDO AS BIBLIOTECAS DE JAVATV FRANCA 2009

Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

  • View
    6.351

  • Download
    4

Embed Size (px)

DESCRIPTION

Desenvolvimento de um aplicativo para TV Digital Interativa, onde o telespectador pode assistir de imediato os vídeos disponibilizados pela emissora, ou agendá-los para uma determinada data e hora, além de conferir as informações sobre o vídeo que está em execução, dentre outras funcionalidades.

Citation preview

Page 1: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

JOSIMAR FERREIRA GUILHERME WELLINGTON CÉSAR GOMARIN

DESENVOLVIMENTO DE UM APLICATIVO PARA TV DIGITAL USANDO AS BIBLIOTECAS DE JAVATV

FRANCA 2009

Page 2: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 3: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 4: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 5: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 6: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 7: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 8: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 9: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 10: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 11: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 12: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 13: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 14: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 15: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 16: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 17: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 18: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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).

Page 19: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 20: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 21: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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).

Page 22: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 23: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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,

Page 24: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 25: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 26: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 27: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 28: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 29: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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:

Page 30: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 31: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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).

Page 32: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 33: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 34: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 35: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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;

Page 36: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 37: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

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).

IniciadoIniciadoIniciadoIniciado

CarregadoCarregadoCarregadoCarregado ParalisadoParalisadoParalisadoParalisado

DestruídoDestruídoDestruídoDestruído

Page 38: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 39: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 40: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 41: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 42: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 43: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 44: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 45: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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á

Page 46: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 47: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

cores usadas

no aplicativo

Somente serão

utilizadas as cores

vermelha, branca,

preta, amarela e azul.

Interface (X) ( )

NF2: Definir

nome e

logotipo da

aplicação

O aplicativo chamará

“Arquivo TV” com o

logotipo baseado nas

cores da aplicação.

Interface ( ) (X)

NF3: Utilizar

Middleware

MHP

O middleware

instalado no set-top

box deverá ser o MHP.

Software ( ) (X)

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.

Page 48: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 49: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 50: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 51: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 52: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

os vídeos.

2 – verifica qual o pacote atual.

4 – Telespectador escolhe o vídeo que

deseja assistir.

3 – Retorna os vídeos.

5 – Retorna o vídeo que o telespectador

escolheu.

6 – Exibe o vídeo no aplicativo.

7 – Encerra operação.

Page 53: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

agendar os vídeos.

2 – Exibe lista de pacotes existentes.

3 – Telespectador escolhe o pacote do qual

deseja agendar o vídeo.

4 – Exibe lista de vídeos do pacote

escolhido.

5 – Telespectador escolhe o vídeo para

agendá-lo.

6 – Confirma o vídeo.

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.

Page 54: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

controle remoto virtual desejada.

2 – Verifica tecla pressionada.

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.

Page 55: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 56: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 57: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

55

3.5 DIAGRAMAS DE CLASSES

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

TV”.

Page 58: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

56

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

Page 59: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

57

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

Figura 14 – Diagrama de Classes: Sistema Administrativo

Page 60: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 61: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 62: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 63: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 64: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 65: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 66: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 67: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 68: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 69: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 70: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 71: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 72: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 73: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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_INTERATIVA.pdf>. Acesso em: 08 de abr. 2009.

Page 74: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 75: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 76: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 77: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 78: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 79: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 80: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 81: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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)

Page 82: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 83: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 84: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 85: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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”.

Page 86: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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”

Page 87: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 88: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 89: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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

Page 90: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 91: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

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.

Page 92: Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

90

Tela do Menu Sair.