SlideShare ist ein Scribd-Unternehmen logo
1 von 92
Downloaden Sie, um offline zu lesen
JOSIMAR FERREIRA GUILHERME
        WELLINGTON CÉSAR GOMARIN




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




                 FRANCA
                   2009
JOSIMAR FERREIRA GUILHERME
        WELLINGTON CÉSAR GOMARIN




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




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

                     Orientador: Fernando Orsi
                     Coorientador: Hemerson da Silva Calabreze




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


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

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

                1. Computação – TV Digital. 2. TV Digital – Interatividade. 3. TV Digital
            (aplicativo) – JavaTV (bibliotecas). I. Gomarin, Wellington César. II.
            Universidade de Franca. III. Título.

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




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




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




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




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




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




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




GUILHERME, Josimar Ferreira; GOMARIN, Wellington César. Desenvolvimento de um
Aplicativo para TV Digital usando as bibliotecas JavaTV. 2009. Trabalho de Conclusão de
Curso (Graduação em Ciência da Computação) – Universidade de Franca, Franca.




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


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




GUILHERME, Josimar Ferreira; GOMARIN, Wellington César. Development of an
application for TV Digital using the JavaTV libraries. 2009. Trabalho de Conclusão de Curso
(Graduação em Ciência da Computação) – Universidade de Franca, Franca.




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


Key-words: Digital TV, interactivity, JavaTV, XleTView.
LISTA DE FIGURAS



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


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


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


Figura 4 -    TV sendo exibida em um celular                                             23


Figura 5 -    Exemplo de Interatividade                                                  25


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


Figura 7 -    Modelo de um set-top Box                                                   27


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


Figura 9 -    Ciclo de vida de um Xlet                                                   35


Figura 10 -   Interface do XleTView                                                      37


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


Figura 12 -   Diagrama de Casos de Uso                                                   53


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


Figura 14 -   Diagrama de Classes: Sistema Administrativo                                57
Figura 15 -   Diagrama de Sequência: Agendar Vídeo                         58


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


Figura 17 -   Funcionamento em um ambiente real                            61


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


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


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


Figura 21 -   Agendamento sendo iniciado                                   66


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



8VSB    Vestigial Sideband Modulation


API     Application Programming Interface


ARIB    Association of Radio Industries and Businesses


ATSC    Advanced Television System Comittee


AWT     Abstract Window Toolkit


COFDM   Coded Orthogonal Frequency-Division Multiplexing


CPqD    Centro de Pesquisa e Desenvolvimento Padre Roberto Landell de Moura


DASE    Digital Applications Software Environment


DAVIC   Digital Audio Visual Council


DVB     Digital Video Broadcating


DVB-H   Digital Video Broadcasting – Handheld


DVB-T   Digital Video Broadcasting – Terrestrial


DVD     Digital Vídeo Disc


EAD     Ensino à Distância
EPG      Eletronic Program Guide


GPL      General Public License


GSM      Global System Mobile


HAVi     Home Audio Video Interoperability


HD       High Definition


HDTV     High Definition Television


HTML     Hypertext Markup Language


IBGE     Instituto Brasileiro de Geografia e Estatística


IDE      Integrated Development Environment


IP       Internet Protocol


ISDB     Integrated Services Digital Broadcasting


ISDB-T   Integrated Services Digital Broadcasting – Terrestrial


JMF      Java Media Framework


LCD      Liquid Crystal Display


LGPL     Lesser General Public License


MHP      Multimedia Home Platform


MPEG     Moving Picture Experts Group
NCL      Nested Context Language


NTSC     National Television System Committee


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


PNAD     Pesquisa Nacional de Amostra de Domicílios


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


RGB      Red, Green, Blue


SDTV     Standard Definition Television


SBTVD    Sistema Brasileiro de Televisão Digital


TVDI     Televisão Digital Interativa


UFPB     Universidade Federal da Paraíba


UHF      Ultra High Frequency


UI       User Interface


URL      Uniform Resource Locator


USB      Universal Serial Bus


USP      Universidade de São Paulo


XML      eXtensible Markup Language
SUMÁRIO



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




                                      INTRODUÇÃO




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



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




1 A ERA DA TV DIGITAL




1.1 CONSIDERAÇÕES INICIAIS




              Neste capítulo será apresentada a história da televisão, as mudanças da TV
analógica para a TV Digital, os componentes que integram a Televisão Digital Interativa
(TVDI), e os padrões utilizados pela mesma, que fornece conceitos básicos para o
desenvolvimento do aplicativo proposto desenvolvido com JavaTV utilizando o emulador
XleTView.




1.2 HISTÓRIA DA TELEVISÃO




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



1.2.1 Televisão Analógica




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



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




1.2.2 TV Digital no Mundo




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




1.2.3 TV Digital no Brasil




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



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




               Figura 1 - Cronograma de implantação da TV Digital no Brasil
               Fonte: Site Oficial da TV Digital Brasileira.

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



1.3 O QUE MUDA COM A TV DIGITAL




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




1.3.1 HDTV




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



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




                  Figura 2 - Comparação entre o sinal analógico e o digital
                  Fonte: Site Veja isso.

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



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




              Figura 3 - Comparação entre as resoluções de tela para televisão
              Fonte: Site Image Group.

                 Segundo a Revista Guia Como se Faz Especial TV Digital sem Segredos
(2008), outro sinal digital existente é o sistema digital padrão, que é identificado por SDTV
(Standard Definition Television), cuja sua qualidade é um pouco inferior ao HDTV. Este sinal
é transmitido pelas TVs por assinaturas e alguns decodificadores.




1.3.2 Multiprogramação




                 Atualmente, o telespectador está acostumado a assistir a transmissão a partir do
ângulo que a emissora exibe, mas isso mudará, pois com a chegada da multiprogramação, as
23



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




1.3.3 Mobilidade e Portabilidade




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




                  Figura 4 - TV sendo exibida em um celular
                  Fonte: Blog teiasilvio.
24



               De acordo com o site Meio Bit (2009), existem diversos receptores de TV
Digital onde é possível, através da entrada USB, assistir TV pelo próprio computador. Basta
conectar o receptor à entrada USB e através de um software assistir ao canal desejado.




1.3.4 Interatividade




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




          Figura 5 - Exemplo de Interatividade
          Fonte: Blog tagilramos.

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



1.4 COMPONENTES DA TV DIGITAL INTERATIVA




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




               Figura 6 - Componentes que definem um sistema de TV Digital
               Fonte: Eli Cândido Júnior, 2008.
27



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




                Figura 7 - Modelo de um set-top box
                Fonte: Eli Cândido Júnior, 2008.

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




    Figura 8 - Blocos na forma de caixa preta definindo um sistema de televisão digital
    Fonte: Aplicativos Para Televisão Digital Interativa (Pozzo).



1.5 PADRÕES PARA A TVDI




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




1.5.1 Padrão Americano




              Os Estados Unidos apresentaram o seu padrão de transmissão digital no início
da década de 1980. É focado na alta definição (HDTV). Segundo Brennand e Lemos
(2007:115), seu formato compressão e transporte de vídeo é o MPEG-2 (Moving Picture
29



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




1.5.2 Padrão Europeu




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



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




1.5.3 Padrão Japonês




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




1.5.4 Padrão Brasileiro




               Dentre os principais padrões de transmissão digital existentes e de acordo com
as necessidades locais, o Brasil decidiu criar seu próprio sistema digital, o SBTVD, derivado
do sistema japonês ISDB-T (Integrated Services Digital Broadcasting- Terrestrial) que é o
sistema digital mais completo e eficiente até o momento.
31



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




1.6 CONSIDERAÇÕES FINAIS




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




2 APLICAÇÕES EM JAVATV




2.1 CONSIDERAÇÕES INICIAIS




              Neste capítulo serão apresentadas as ferramentas e tecnologias usadas para o
desenvolvimento de um aplicativo para TV Digital, chamado “Arquivo TV”. Serão abordados
os conceitos sobre a API JavaTV e suas bibliotecas, Xlets, emuladores e as demais APIs
HAVi e DAVIC.




2.2 JAVA TV




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



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




2.2.1 Bibliotecas JavaTV




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



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




2.3 XLET




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



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




                   Carregado                                 Paralisado




                   Destruído                                     Iniciado


     Figura 9 - Ciclo de vida de um Xlet
     Fonte: Carvalho e Araújo, 2007.

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



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




2.4 EMULADORES




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



2.4.1 XleTView




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




         Figura 10 – Interface do XleTView

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



2.4.2 OpenMHP




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




2.5 API HAVI




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



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




     Figura 11 – Camadas do dispositivo do modelo gráfico do MHP
     Fonte: Aplicativos Para Televisão Digital Interativa (Pozzo).

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



2.6 API DAVIC




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



2.7 METODOLOGIA




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



2.8 CONSIDERAÇÕES FINAIS




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




3 APLICAÇÃO PARA TV DIGITAL




3.1 CONSIDERAÇÕES INICIAIS




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




3.2 O APLICATIVO: “ARQUIVO TV”




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



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




3.3 REQUISITOS DO SISTEMA




              Neste tópico será apresentada a lista de requisitos do sistema que são
classificados em requisitos funcionais e requisitos não funcionais, onde os funcionais
descrevem o que o aplicativo “Arquivo TV” e o Sistema Administrativo deve fazer e os não
funcionais fixam restrições sobre como os requisitos funcionais serão implementados.
45



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




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


    NF3: Utilizar O               middleware Software            ()        (X)
    Middleware        instalado   no    set-top
    MHP               box deverá ser o MHP.


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



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



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



3.4 CASOS DE USO




              Neste tópico será apresentada a lista de casos de uso, o diagrama de casos de
uso e os três principais casos de uso do aplicativo no modo expandido. Um caso de uso
representa uma unidade de interação entre o usuário e o sistema.




3.4.1 Lista de Casos de Uso




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



3.4.2 Casos de Uso no Modo Expandido




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


Sequência Típica de Eventos
Ação do Ator                                   Resposta do Sistema

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

5 – Telespectador lê informação.               3 – Aplicativo lê informações sobre vídeos
                                               agendados.
                                               4 – Retorna informação de aplicação sendo
                                               carregada.
                                               6 – Inicia a aplicação.

                                               7 – Encerra a operação.



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



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


Sequência Típica de Eventos
Ação do Ator                                   Resposta do Sistema

1 – Telespectador pressiona botão para listar 2 – verifica qual o pacote atual.
os vídeos.
4 – Telespectador escolhe o vídeo que 3 – Retorna os vídeos.
deseja assistir.
                                               5 – Retorna o vídeo que o telespectador
                                               escolheu.
                                               6 – Exibe o vídeo no aplicativo.

                                               7 – Encerra operação.
51



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


Sequência Típica de Eventos
Ação do Ator                                   Resposta do Sistema

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



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



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


Sequência Típica de Eventos
Ação do Ator                                    Resposta do Sistema

1 – Telespectador pressiona a tecla do 2 – Verifica tecla pressionada.
controle remoto virtual desejada.
                                                3 – Responde ao telespectador.

                                                4 – Encerra operação.



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



3.4.3 Diagrama de Casos de Uso




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




Figura 12 – Diagrama de Casos de Uso
54



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



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

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



3.5 DIAGRAMAS DE CLASSES




          A figura a seguir representa o Diagrama de Classes do aplicativo “Arquivo
TV”.
56




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



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




Figura 14 – Diagrama de Classes: Sistema Administrativo
58



3.6 DIAGRAMA DE SEQUÊNCIA




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




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



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




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




3.7 CONSIDERAÇÕES FINAIS




              Neste capítulo foi apresentado o aplicativo “Arquivo TV” com suas
especificações, seus requisitos, além do diagrama de casos de uso, os diagramas de classes, e
os diagramas de sequência. No próximo capítulo será abordado os testes do sistema e seus
resultados.
60




4 TESTES E RESULTADOS




4.1 CONSIDERAÇÕES INICIAIS




               Neste capítulo é apresentada a simulação da transmissão do aplicativo
“Arquivo TV” em um ambiente real, testes, resultados, dificuldades encontradas e propostas
para projetos futuros.




4.2 FUNCIONAMENTO EM AMBIENTE REAL




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




   Figura 17 – Funcionamento em um ambiente real
   Fonte: Eli Cândido Júnior, 2008.

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




4.3 TESTES DO SISTEMA E RESULTADOS OBTIDOS




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



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




Figura 18 – Resultado do Teste da Classe Aplicativo com JUnit


              Executando o aplicativo “Arquivo TV” pelo emulador XleTView, todos os
objetos são intanciados e nenhuma exceção é gerada. A figura a seguir mostra o resultado no
prompt do sistema.
63




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


              A Figura 20 mostra o teste realizado pelo JUnit na classe responsável pela
criação do objeto, que constantemente verifica a data e hora agendada. Se estiver no horário
agendado, o teste exibe uma exceção com a mensagem “Aplicativo não iniciado”, pois
somente será iniciado se for executado no emulador XleTView.
64




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


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



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


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




        Figura 21 – Agendamento sendo iniciado


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




        Figura 22 – Tela com as informações do vídeo exibido
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV
Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

Weitere ähnliche Inhalte

Was ist angesagt?

TV Digital Javaneiros 2010
TV Digital Javaneiros 2010TV Digital Javaneiros 2010
TV Digital Javaneiros 2010JUGMS
 
WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.Rafael Macedo
 
Tv Digital O Que Voce Precisa Saber
Tv Digital O Que Voce Precisa SaberTv Digital O Que Voce Precisa Saber
Tv Digital O Que Voce Precisa SaberGilberto Sudre
 
Relatório acadêmico - Workshop Venha Ser Digital
Relatório acadêmico - Workshop Venha Ser DigitalRelatório acadêmico - Workshop Venha Ser Digital
Relatório acadêmico - Workshop Venha Ser DigitalMatheus Alves
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Introdução a interatividade na TV Digital - ICMC USP São Carlos -SP
Introdução a interatividade na TV Digital - ICMC USP São Carlos -SPIntrodução a interatividade na TV Digital - ICMC USP São Carlos -SP
Introdução a interatividade na TV Digital - ICMC USP São Carlos -SPmercuriocfg
 
TV DIGITAL: Aproximações e conexões
TV DIGITAL: Aproximações e conexõesTV DIGITAL: Aproximações e conexões
TV DIGITAL: Aproximações e conexõesAndré Pase
 
Infnet Palestra Tv Digital
Infnet   Palestra Tv DigitalInfnet   Palestra Tv Digital
Infnet Palestra Tv Digitalguest99f679
 
Video Digital
Video Digital Video Digital
Video Digital ToscaDiana
 
Trabalho HDTV e TV Digital
Trabalho HDTV e TV DigitalTrabalho HDTV e TV Digital
Trabalho HDTV e TV Digitalfelipe2santos
 

Was ist angesagt? (17)

TV Digital Javaneiros 2010
TV Digital Javaneiros 2010TV Digital Javaneiros 2010
TV Digital Javaneiros 2010
 
Padrão de TV Nipo Brasileiro
Padrão de TV Nipo BrasileiroPadrão de TV Nipo Brasileiro
Padrão de TV Nipo Brasileiro
 
WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.
 
Tv digital
Tv digitalTv digital
Tv digital
 
Portfolio-luqs-tvd
Portfolio-luqs-tvdPortfolio-luqs-tvd
Portfolio-luqs-tvd
 
Tv Digital O Que Voce Precisa Saber
Tv Digital O Que Voce Precisa SaberTv Digital O Que Voce Precisa Saber
Tv Digital O Que Voce Precisa Saber
 
Tv Digital
Tv DigitalTv Digital
Tv Digital
 
Relatório acadêmico - Workshop Venha Ser Digital
Relatório acadêmico - Workshop Venha Ser DigitalRelatório acadêmico - Workshop Venha Ser Digital
Relatório acadêmico - Workshop Venha Ser Digital
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Aula Unesp -Pos TV Digital
Aula Unesp -Pos TV DigitalAula Unesp -Pos TV Digital
Aula Unesp -Pos TV Digital
 
Introdução a interatividade na TV Digital - ICMC USP São Carlos -SP
Introdução a interatividade na TV Digital - ICMC USP São Carlos -SPIntrodução a interatividade na TV Digital - ICMC USP São Carlos -SP
Introdução a interatividade na TV Digital - ICMC USP São Carlos -SP
 
Tvdigital
TvdigitalTvdigital
Tvdigital
 
TV DIGITAL: Aproximações e conexões
TV DIGITAL: Aproximações e conexõesTV DIGITAL: Aproximações e conexões
TV DIGITAL: Aproximações e conexões
 
Infnet Palestra Tv Digital
Infnet   Palestra Tv DigitalInfnet   Palestra Tv Digital
Infnet Palestra Tv Digital
 
Video Digital
Video Digital Video Digital
Video Digital
 
Trabalho HDTV e TV Digital
Trabalho HDTV e TV DigitalTrabalho HDTV e TV Digital
Trabalho HDTV e TV Digital
 
Vídeo digital ass
Vídeo digital  assVídeo digital  ass
Vídeo digital ass
 

Ähnlich wie Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV

Sistema de recomendação para tv digital portátil
Sistema de recomendação para tv digital portátilSistema de recomendação para tv digital portátil
Sistema de recomendação para tv digital portátilElaine Cecília Gatto
 
Design de Interação e Televisão Digital
Design de Interação e Televisão DigitalDesign de Interação e Televisão Digital
Design de Interação e Televisão Digitalpvfreitas
 
Introdução à TV digital interativa
Introdução à TV digital interativaIntrodução à TV digital interativa
Introdução à TV digital interativaMaurilio Alberone
 
O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...
O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...
O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...Diogo Dostoiévsky Robespierre de Sá
 
Resumo 8 categorias Angeluci
Resumo 8 categorias AngeluciResumo 8 categorias Angeluci
Resumo 8 categorias AngeluciIsabella Marimon
 
Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...
Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...
Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...Thiago Reis da Silva
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Apresentação oswaldo
Apresentação oswaldoApresentação oswaldo
Apresentação oswaldolabmidiaufmg
 
1ª edição redinfo, a sua revista eletrônica de computação
1ª edição redinfo, a sua revista eletrônica de computação1ª edição redinfo, a sua revista eletrônica de computação
1ª edição redinfo, a sua revista eletrônica de computaçãoFernando Nogueira
 
Desafios e perspectivas para TV Conectada
Desafios e perspectivas para TV ConectadaDesafios e perspectivas para TV Conectada
Desafios e perspectivas para TV ConectadaAécio Costa
 
Artigo coloquio 2013
Artigo coloquio 2013Artigo coloquio 2013
Artigo coloquio 2013testes1
 
OT Tablet - Sugestão de Material ATPC
OT Tablet - Sugestão de Material ATPCOT Tablet - Sugestão de Material ATPC
OT Tablet - Sugestão de Material ATPCReinaldo Paes
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Webservice EAD TVD NetCast
Webservice EAD TVD NetCast Webservice EAD TVD NetCast
Webservice EAD TVD NetCast Junior Teles
 
Projeto - #ufrn@web
Projeto - #ufrn@webProjeto - #ufrn@web
Projeto - #ufrn@webandreivny
 
Conhecendo as inovações do Sistema Brasileiro de TV Digital
Conhecendo as inovações do Sistema Brasileiro de TV DigitalConhecendo as inovações do Sistema Brasileiro de TV Digital
Conhecendo as inovações do Sistema Brasileiro de TV DigitalManoel Campos da Silva Filho
 

Ähnlich wie Desenvolvimento de um aplicativo para TV Digital usando as bibliotecas de JavaTV (20)

Sistema de recomendação para tv digital portátil
Sistema de recomendação para tv digital portátilSistema de recomendação para tv digital portátil
Sistema de recomendação para tv digital portátil
 
Design de Interação e Televisão Digital
Design de Interação e Televisão DigitalDesign de Interação e Televisão Digital
Design de Interação e Televisão Digital
 
Introdução à TV digital interativa
Introdução à TV digital interativaIntrodução à TV digital interativa
Introdução à TV digital interativa
 
O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...
O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...
O Uso da Linguagem Declarativa NCL no Desenvolvimento de Software para TV Dig...
 
Resumo 8 categorias Angeluci
Resumo 8 categorias AngeluciResumo 8 categorias Angeluci
Resumo 8 categorias Angeluci
 
Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...
Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...
Facilitando o aprendizado na tv digital interativa com a utilização de mapa d...
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Apresentação oswaldo
Apresentação oswaldoApresentação oswaldo
Apresentação oswaldo
 
1ª edição redinfo, a sua revista eletrônica de computação
1ª edição redinfo, a sua revista eletrônica de computação1ª edição redinfo, a sua revista eletrônica de computação
1ª edição redinfo, a sua revista eletrônica de computação
 
Desafios e perspectivas para TV Conectada
Desafios e perspectivas para TV ConectadaDesafios e perspectivas para TV Conectada
Desafios e perspectivas para TV Conectada
 
TV analogica x TV digital
TV analogica x TV digitalTV analogica x TV digital
TV analogica x TV digital
 
Artigo coloquio 2013
Artigo coloquio 2013Artigo coloquio 2013
Artigo coloquio 2013
 
OT Tablet - Sugestão de Material ATPC
OT Tablet - Sugestão de Material ATPCOT Tablet - Sugestão de Material ATPC
OT Tablet - Sugestão de Material ATPC
 
Resumo
ResumoResumo
Resumo
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Webservice EAD TVD NetCast
Webservice EAD TVD NetCast Webservice EAD TVD NetCast
Webservice EAD TVD NetCast
 
Projeto - #ufrn@web
Projeto - #ufrn@webProjeto - #ufrn@web
Projeto - #ufrn@web
 
Conhecendo as inovações do Sistema Brasileiro de TV Digital
Conhecendo as inovações do Sistema Brasileiro de TV DigitalConhecendo as inovações do Sistema Brasileiro de TV Digital
Conhecendo as inovações do Sistema Brasileiro de TV Digital
 
Tablet MEC Educacional 2013
Tablet MEC Educacional 2013Tablet MEC Educacional 2013
Tablet MEC Educacional 2013
 
Monografia td (final)
Monografia td (final)Monografia td (final)
Monografia td (final)
 

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

  • 1. JOSIMAR FERREIRA GUILHERME WELLINGTON CÉSAR GOMARIN DESENVOLVIMENTO DE UM APLICATIVO PARA TV DIGITAL USANDO AS BIBLIOTECAS DE JAVATV FRANCA 2009
  • 2. 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
  • 3. 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
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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.
  • 17. 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.
  • 18. 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).
  • 19. 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
  • 20. 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
  • 21. 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).
  • 22. 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
  • 23. 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,
  • 24. 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
  • 25. 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.
  • 26. 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.
  • 27. 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.
  • 28. 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.
  • 29. 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:
  • 30. 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
  • 31. 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).
  • 32. 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.
  • 33. 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.
  • 34. 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.
  • 35. 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;
  • 36. 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
  • 37. 35 sua execução continuada, pois em um ambiente de televisão interativa, vários xlets podem estar sendo executados simultaneamente, e provavelmente apenas um xlet estará sendo exibido, sendo assim, paralisado um xlet, ele se torna invisível e poupa recursos de hardware, possibilitando a execução e exibição de outras aplicações. Cada Xlet tem seus próprios recursos que não interferem no funcionamento de outros Xlets. A aplicação Xlet possui uma interface que permite a uma fonte externa controlá- la de diversas formas. A Figura 9 mostra os estados que um Xlet pode possuir em seu ciclo de vida: carregado, paralisado, iniciado e destruído. Carregado Paralisado Destruído Iniciado Figura 9 - Ciclo de vida de um Xlet Fonte: Carvalho e Araújo, 2007. No estado de Carregado ou Loaded, a aplicação já foi carregada, porém ainda não foi inicializada; no estado de Paralisado ou Paused, a aplicação minimiza sua utilização de recursos; no estado de Iniciado ou Active, a aplicação está em uso com seus recursos ativos; e no estado de Destruído ou Destroyed, a aplicação libera todos os seus recursos da memória. A interface responsável pela implementação de todos os métodos de um xlet mostrado na Figura 9 é a javax.tv.Xlet. Quando uma aplicação é chamada, ele primeiro dispara o método initXlet(XletContext ctx) e, em seguida startXlet( ). O método pauseXlet( ) deixará o xlet pausado e invisível, e só retornará visível quando o método startXlet( ) for chamado. Para encerrar definitivamente o xlet, a aplicação chama o método destroyXlet(boolean inconditional), assim o xlet volta ao estado de não carregado, e o parâmetro boolean inconditional é usado para indicar a obrigação de encerrar ou se tem a possibilidade de negar o encerramento do xlet (The MHP – Guide, 2006).
  • 38. 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.
  • 39. 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.
  • 40. 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.
  • 41. 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.
  • 42. 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.
  • 43. 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.
  • 44. 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.
  • 45. 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á
  • 46. 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.
  • 47. 45 3.3.1 Declaração dos Requisitos Funcionais e Não-Funcionais Requisitos Não Funcionais Nome Restrição Categoria Desejável Permanente NF1: Definir Somente serão Interface (X) () cores usadas utilizadas as cores no aplicativo vermelha, branca, preta, amarela e azul. NF2: Definir O aplicativo chamará Interface () (X) nome e “Arquivo TV” com o logotipo da logotipo baseado nas aplicação cores da aplicação. NF3: Utilizar O middleware Software () (X) Middleware instalado no set-top MHP box deverá ser o MHP. Requisitos Funcionais F1: Exibir Vídeos Sequencialmente Oculto (X) Descrição: Os vídeos serão exibidos em sequência caso o telespectador não interrompa a programação corrente. Havendo interrupção, a sequência continuará a partir do vídeo escolhido pelo telespectador. F2: Mostrar / Ocultar Menu Principal Evidente (X) Descrição: O Menu Principal aparecerá na tela da aplicação toda vez que for chamado, onde o telespectador pode navegar pelos seus sub-menus. O telespectador também poderá ocultá-lo quando ele não estiver sendo usado. F3: Mostrar / Ocultar Menu de Ajuda Evidente (X) Descrição: O Menu de Ajuda aparecerá na tela toda que o telespectador chamá-lo. O telespectador também poderá ocultá-lo. F4: Pausar Vídeo Evidente (X) Descrição: O telespectador poderá pausar a execução do vídeo corrente e continuar a execução do vídeo.
  • 48. 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
  • 49. 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.
  • 50. 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.
  • 51. 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.
  • 52. 50 Caso de Uso: Listar Vídeo. Ator: Telespectador. Finalidade: Lista os Vídeos de um Determinado Pacote. Tipo: primário, essencial. Visão Geral: Telespectador pressiona o botão para Listar os vídeos, os vídeos são listados de acordo com o pacote atual, o telespectador escolhe o vídeo para assistir. Sequência Típica de Eventos Ação do Ator Resposta do Sistema 1 – Telespectador pressiona botão para listar 2 – verifica qual o pacote atual. os vídeos. 4 – Telespectador escolhe o vídeo que 3 – Retorna os vídeos. deseja assistir. 5 – Retorna o vídeo que o telespectador escolheu. 6 – Exibe o vídeo no aplicativo. 7 – Encerra operação.
  • 53. 51 Caso de Uso: Agendar Vídeo Ator: Telespectador. Finalidade: Agenda um Vídeo Específico. Tipo: primário, essencial. Visão Geral: Telespectador pressiona o botão para Agendar Vídeo, escolhe o pacote desejado e escolhe o vídeo passando data e horário para agendamento. Sequência Típica de Eventos Ação do Ator Resposta do Sistema 1 – Telespectador pressiona botão para 2 – Exibe lista de pacotes existentes. agendar os vídeos. 3 – Telespectador escolhe o pacote do qual 4 – Exibe lista de vídeos do pacote deseja agendar o vídeo. escolhido. 5 – Telespectador escolhe o vídeo para 6 – Confirma o vídeo. agendá-lo. 7 – Telespectador informa data e horário. 8 – Confirma data e horário do agendamento. 10 – Telespectador Confirma informações. 9 – Mostra informações sobre o agendamento. 11 – Encerra operação. Sequências Alternativas 6a – Vídeo já agendado. Repetir operação. 8a – Data e ou horário incorreto. Repetir operação. 8b – Horário já possui vídeo agendado. Repetir operação. 10a – Telespectador não confirma informações. Executar caso de uso Cancelar Agendamento.
  • 54. 52 Caso de Uso: Navegar Pelo Aplicativo Ator: Telespectador. Finalidade: Navegar Pela Cena Onde o Vídeo é Executado. Tipo: primário, essencial. Visão Geral: Telespectador pressiona a tecla do controle remoto virtual correspondente ao que ele deseja fazer dentre as opções disponíveis e o aplicativo responde de acordo com a tecla pressionada. Sequência Típica de Eventos Ação do Ator Resposta do Sistema 1 – Telespectador pressiona a tecla do 2 – Verifica tecla pressionada. controle remoto virtual desejada. 3 – Responde ao telespectador. 4 – Encerra operação. Sequências Alternativas 2a – Tecla sem função. Repetir Operação. 2b – Tecla ‘vermelha’ pressionada. Executar caso de uso Mostrar Menu Principal. 2c - Tecla ‘verde’ pressionada. Pausar / Despausar Vídeo. 2d - Tecla ‘amarela’ pressionada. Mostrar / Ocultar Ajuda. 2e – Tecla ‘azul’ pressionada. Executar caso de uso Mostrar Informação. 2f – Seta ‘para a direita’ pressionada. Passar para o próximo vídeo. 2g – Seta ‘para a esquerda’ pressionada. Voltar para o vídeo anterior. 2h – Seta ‘para cima’ pressionada. Passar para o próximo pacote. 2i – Seta ‘para baixo’ pressionada. Passar para o pacote anterior. 2j – Tecla ‘asterisco’ pressionada. Pula a execução para a próxima parte do vídeo. 2l – Tecla ‘cerquilha’ pessionada. Volta a execução para a parte anterior do vídeo. 2m – Tecla ‘mais’ pressionada. Aumenta o áudio. 2n – Tecla ‘menos’ pressionada. Diminui o áudio.
  • 55. 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
  • 56. 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.
  • 57. 55 3.5 DIAGRAMAS DE CLASSES A figura a seguir representa o Diagrama de Classes do aplicativo “Arquivo TV”.
  • 58. 56 Figura 13 – Diagrama de Classes: Aplicativo “Arquivo TV”
  • 59. 57 A figura a seguir representa o Diagrama de Classes do Sistema Administrativo. Figura 14 – Diagrama de Classes: Sistema Administrativo
  • 60. 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
  • 61. 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.
  • 62. 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.
  • 63. 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.
  • 64. 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.
  • 65. 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.
  • 66. 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
  • 67. 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.
  • 68. 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