Your SlideShare is downloading. ×
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
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
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
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
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

5,470

Published on

Desenvolvimento de um aplicativo para TV Digital Interativa, onde o telespectador pode assistir de imediato os vídeos disponibilizados pela emissora, ou agendá-los para uma determinada data e hora, …

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

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
5,470
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
256
Comments
1
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 69. 67 4.4 DIFICULDADES ENCONTRADAS No início do projeto, a maior dificuldade encontrada foi a obtenção de informação para o desenvolvimento, pois a documentação da API HAVi não estava disponível no site oficial. Quanto ao emulador XleTView, as dificuldades encontradas foram a de descobrir o que era preciso para que o emulador fosse executado e a maneira de trabalhar com arquivos de vídeos. Outra dificuldade foi encontrar o formato ideal de áudio e vídeo para que o arquivo não ocupasse muito espaço, mantendo a qualidade de execução, pois várias monografias, artigos e fóruns citavam que o único formato suportado pelo XleTView era o de extensão avi com codec Cinepack. Após vários testes, concluiu-se que o formato ideal de vídeo é o H.263 e de áudio A-Law, com extensão mov. Além disso, o emulador possui algumas limitações que interferiram no desenvolvimento do projeto como, por exemplo, a não aceitação de transparências gráficas em cima da camada de vídeo quando se trabalha juntamente com a biblioteca JMF e a perda de foco no aplicativo quando o emulador é minimizado no computador. A principal dificuldade foi a de não encontrar exemplos com código-fonte implementados de aplicações que manipulam vídeos, pois todos os exemplos encontrados apenas exibiam um vídeo que era configurado no emulador. Após muita pesquisa, encontrou- se um exemplo que manipulava dois vídeos, e mesmo assim o código encontrado continha alguns erros. Com isso, ganhou-se confiança para trabalhar em uma aplicação que manipulasse vários arquivos de vídeo. No Sistema Administrativo, a principal dificuldade encontrada foi a de copiar arquivos de vídeo para o diretório do sistema, pois quando cópia era realizada, o sistema ficava travado até a cópia ser concluída. Após alguns estudos descobriu-se que era necessária a utilização de threads para que o sistema não ficasse aguardando a cópia, liberando a aplicação para uso. Durante os testes do aplicativo “Arquivo TV”, não foi possível realizar o teste de componentes do JUnit em todas as classes, como citado anteriormente, pois em algumas classes não se conseguiu instanciar objetos e alguns atributos e métodos só são executados no emulador XleTView, como por exemplo, o xlet e o player, que são os dois objetos mais utilizados, não puderam ser instanciados.
  • 70. 68 4.5 PROJETOS FUTUROS Como projetos futuros pode-se implementar esta proposta utilizando o middleware Ginga, através da linguagem Java com a API padrão Java DTV, que foi desenvolvida baseada na API JavaTV e na linguagem NCL. Esta API foi escolhida pelo padrão brasileiro de TV Digital. O projeto também pode servir de base para emissoras que necessitem de manipulação de arquivos de vídeos na interatividade com a TV Digital, implementando-se um canal de retorno para a realização da interatividade permanente, fazendo com que a transmissão dos vídeos seja feita por streaming. 4.6 CONSIDERAÇÕS FINAIS Neste capítulo foi apresentado o funcionamento do aplicativo em ambiente real, além dos seus requisitos de instalação, explicação de seu funcionamento, os principais testes e resultados, além de demonstrar as principais dificuldades encontradas e propostas futuras.
  • 71. 69 CONCLUSÃO Conclui-se que o objetivo principal deste projeto, que era desenvolver um aplicativo interativo capaz de manipular vídeos realizando agendamentos que são armazenados no set-top box e mostrando as suas respectivas informações, foi alcançado. Com a TV Digital, os telespectadores terão participação ativa no conteúdo fornecido pela emissora, onde o interesse em assistir televisão aumentará efetivamente pelo simples fato de o mesmo interagir com o aplicativo. Baseado nisso, com o projeto proposto, o telespectador tem muito mais entretenimento no seu dia-a-dia, pois pode escolher o que deseja assistir, não dependendo da programação comum da emissora. A linguagem Java utilizada no projeto, por se tratar de uma linguagem muito ampla, pode-se programar para diversas plataformas, com APIs de fáceis acessos, dentre elas a API JavaTV para atender a programação da TV Digital, levando em consideração que os set-top boxes dão suporte a esta linguagem. Com o emulador XleTView, foi relatado que o mesmo fornece funcionalidades básicas paras os aplicativos para TV Digital, onde pôde-se desenvolver o aplicativo apesar de suas limitações. Foi utilizado este emulador por ser mais popular, além de ser de código aberto e gratuito. Como extensões deste trabalho pode-se desenvolver aplicativos manipulando arquivos de vídeos baseados no middleware Ginga utilizando a API Java DTV e também serve de base para emissoras que necessitem desta manipulação, porém é necessária a implementação de um canal de retorno utilizando interatividade permanente.
  • 72. 70 REFERÊNCIAS ABERT. Associação Brasileira de Emissoras de Rádio e Televisão. Disponível em: <http://www.abert.org.br/D_mostra_clipping.cfm?noticia=122884>. Acesso em: 08 de mai. 2009. ALENCAR, MARCELO SAMPAIO DE. Televisão Digital – Editora Érica, 2007. APRENDA NA WEB. Disponível em: <http://www.aprendanaweb.com.br/site/index.php/News/TV-Digital/O-pacote-JavaTV.html>. Acesso em: 08 de abr. 2009. BRENNAND, EDNA; LEMOS, GUIDO. Televisão Digital Interativa – Reflexões, Sistemas e Padrões. Editora Mackenzie e Editora Horizonte, 2007. CÂNDIDO JÚNIOR, ELI. Utilização da API JavaTV para o Desenvolvimento de Aplicações para a TV Digital Interativa. Universidade do Oeste Paulista de Presidente Prudente, 2008. CARVALHO, SANDRA RÉGIA CHARLES; ARAÚJO, VICTOR TEIXEIRA. Emuladores para TV Digital, 2007. COSMO ONLINE. Ciência e Tecnologia. Disponível em: <http://www.cosmo.com.br/noticia/21685/2009-02-16/interatividade-na-tv-digital-uma- realidade-distante.html>. Acesso em: 25 de mai. 2009. CPqD. Centro de Pesquisa e Desenvolvimento Padre Roberto Landell de Moura. Disponível em: <www.cpqd.com.br>. Acesso em 07 de abr. 2009. CUNHA, CARLOS EDUARDO; KARLSSON, BENGT FERNANDO; HEMMLEPP, PAULO MARTINELLI. HAVi, DAVIC e MHP. Disponível em: <www.cin.ufpe.br/~ceac/SMD.ppt>. Acesso em: 12 de abr. 2009. DTV. Site Oficial da TV Digital Brasileira. Disponível em: <http://www.dtv.org.br>. Acesso em: 01 de abr. 2009. DEITEL, Harvey M.; DEITEL, Paul J. Java Como Programar – Sexta Edição. Editora Pearson Prentice Hall, 2005.
  • 73. 71 FOLHA ONLINE. Informática. Disponível em: <http://www1.folha.uol.com.br/folha/dinheiro/ult91u105790.shtml> e <http://www1.folha.uol.com.br/folha/informatica/ult124u561569.shtml>. Acesso em: 08 de mai. 2009. G1. Disponível em: <http://g1.globo.com/Noticias/Tecnologia/0,,MUL241856-6174,00- ENTENDA+COMO+FUNCIONA+A+INTERATIVIDADE+NA+TV+DIGITAL.html>. Acesso em: 06 de abr. 2009. GINGA. TV Digital se faz com Ginga. Disponível em: <http://www.ginga.org.br>. Acesso em: 07 de abr. 2009. GUIA COMO SE FAZ ESPECIAL. TV Digital sem segredos – Editora Escala, 2008. HAVi. Home Audio Video Interoperability. Disponível em: <www.havi.org>. Acesso em: 10 de abr. 2009. IMAGE GROUP. Instituto de Telecomunicações, Instituto Superior Técnico. Disponível em:<http://www.img.lx.it.pt/~fp/cav/ano2008_2009/Trabalhos_MEEC_2009/Artigo_MEEC_ 5/HTML%20HDTV%20Grupo%205/HTML/hd.html>. Acesso em: 25 de mar. 2009. INTERACTIVE TV WEB. Disponível em: <www.interactivetvweb.org>. Acesso em: 10 de abr. 2009. JAVA FREE. Disponível em: <http://javafree.uol.com.br/wiki/Java%20TV>. Acesso em: 08 de abr. 2009. MEIO BIT. Comunicação Digital. Disponível em: <http://meiobit.pop.com.br/meio- bit/comunicacao-digital/receptor-usb-de-alta-resolucao-para-tv-digital>. Acesso em: 25 de mai. 2009. O GLOBO. Tecnologia. Disponível em: <http://oglobo.globo.com/tecnologia/mat/2007/12/12/327561697.asp>. Acesso em: 03 de abr. 2009. POZZO, DOUGLAS DAL. Aplicativos para Televisão Digital Interativa. Disponível em: <http://www.enapet.ufsc.br/anais/APLICATIVOS_PARA_TELEVISAO_DIGITAL_INTER ATIVA.pdf>. Acesso em: 08 de abr. 2009.
  • 74. 72 SOMMERVILLE, I. Engenharia de Software. 8º ed. São Paulo: Pearson Addison-Wesley, 2007. SUN MICROSYSTEMS. Disponível em: <http://java.sun.com/javame/technology/javatv/index.jsp>. Acesso em: 08 de mai. 2009. TELECO. Conhecimento em Telecomunicações. Disponível em: <www.teleco.com.br/pnad.asp>. Acesso em: 25 de mar. 2009. THE MHP KNOWLEDGE PROJECT. The MHP-Guide. Disponível em: <http://www.mhpkdb.org>. Acesso em: 08 de abr. 2009. TUDO SOBRE TV. Disponível em: <www.tudosobretv.com.br/histortv/>. Acesso em: 25 de mar. 2009. TVDI. Grupo de Pesquisa em TV Digital Interativa. Disponível em: <http://www.tvdi.inf.br/wiki/doku.php?id=javatv>. Acesso em 08 de abr. 2009.
  • 75. 73 GLOSSÁRIO A API: Application Programming Interface (ou Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por programas aplicativos que queiram apenas usar seus serviços. B Broadcast: é o processo pelo qual se transmite ou difunde determinada informação, tendo com principal característica que a mesma informação está sendo enviada para muitos receptores ao mesmo tempo. Bytecodes: é o resultado de um processo semelhante ao dos compiladores de código-fonte que não é imediatamente executável. É um estágio intermediário entre o código-fonte (escrito numa linguagem de programação específica) e a aplicação final, sendo a sua vantagem principal a dualidade entre a portabilidade e a ausência da necessidade do pré-processamento típico dos compiladores. C Canal de retorno: canal que permite a aparelhos de TV e conversores digitais a enviarem dados às emissoras de TV para oferecer serviço de TV interativa. Codec: é o acrônimo de Codificador/Decodificador, dispositivo de hardware ou software que codifica/decodifica sinais. D Decodificadores: Aparelhos que permitem a visualização de sinais anteriormente codificados. Demoduladores: Aparelhos que recuperam um sinal original transportado em uma onda modulada.
  • 76. 74 F Frame: é cada um dos quadros ou imagens fixas de um produto audiovisual. Framework: é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle. Full HD: Full High Definition, ou seja, Alta definição máxima, é a resolução máxima que uma TV de alta definição do mercado alcança. Ao se chegar perto de uma TV de tubo normal, percebe-se alguns ‘pontos’ na tela. Esses pontos são chamados de píxeis. Uma TV Full HD tem 1920 pixels de resolução horizontal por 1080 linhas de resolução vertical, somando um total de 2.073.600 dpi², o que permite um melhor detalhamento da imagem. H Hardware: é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e placas, que se comunicam através de barramentos. I Interoperabilidade: é a capacidade de um sistema (informatizado ou não) de se comunicar de forma transparente (ou o mais próximo disso) com outro sistema (semelhante ou não). Para um sistema ser considerado interoperável, é muito importante que ele trabalhe com padrões abertos. Interface: O conceito de Interface se expressa pela presença de uma ou mais ferramentas para o uso e movimentação de qualquer sistema de informações, seja ele material, seja ele virtual. J JavaTV: é uma biblioteca Java que contempla a maior parte dos recursos necessários para a operação de sistemas receptores de TV digital, simplificando assim o desenvolvimento de softwares, uma vez que os programadores de aplicativos podem se voltar ao tema principal da aplicação em desenvolvimento. Java DTV: é um conjunto de APIs, que pode ser considerada uma única API dentro do middleware Ginga-J e que, funcionalmente, substitui as APIs JavaTV, HAVi e DAVIC, dentre outras.
  • 77. 75 JUnit: é um framework para desenvolvimento e execução de testes de componentes em programas Java, que define um modelo de programação para a criação dos mesmos, onde é disponibilizado uma classe chamada TestRunner para a execução dos testes. M Middleware: é a designação genérica utilizada para referir os sistemas de software que se executam entre as aplicações e os sistemas operativos. O objetivo do middleware é facilitar o desenvolvimento de aplicações, tipicamente aplicações distribuídas, assim como facilitar a integração de sistemas legados ou desenvolvidos de forma não integrada. Modulação: é o processo no qual a informação a transmitir numa comunicação é adicionada a ondas eletromagnéticas. Multiplexador: é um dispositivo que codifica as informações de duas ou mais fontes de dados num único canal. O Obsolescência: é a condição que ocorre a um produto ou serviço que deixa de ser útil, mesmo estando em perfeito estado de funcionamento, devido ao surgimento de um produto tecnologicamente mais avançado. P Pixel: é o menor ponto que forma uma imagem digital, sendo que milhares de pixels formam a imagem inteira, sendo que cada Pixel é composto por um conjunto de 3 pontos: verde, vermelho e azul. Prompt: é um Interpretador de comando responsável por tomar as ações efetivas conforme a orientação do usuário através de comunicação textual. Protocolo: é uma convenção ou padrão que controla e possibilita uma conexão, comunicação ou transferência de dados entre dois sistemas computacionais. De maneira simples, um protocolo pode ser definido como "as regras que governam" a sintaxe, semântica e sincronização da comunicação. Provedor: oferece principalmente serviço de acesso à Internet, agregando a ele outros serviços relacionados, tais como "e-mail", "hospedagem de sites" ou blogs, entre outros.
  • 78. 76 R Raios Catódicos: radiações onde os elétrons emergem do pólo negativo de um eletrodo, chamado cátodo, e se propagam na forma de feixe de partículas negativas ou feixe de elétrons acelerados. Royalties: palavra de origem inglesa que se refere a uma importância cobrada pelo proprietário de uma patente de produto, processo de produção, marca, entre outros, ou pelo autor de uma obra, para permitir seu uso ou comercialização. S Selênio: Elemento químico de símbolo Se, é um não metal do grupo dos calcogênios, um dos seus usos é para a fabricação de células fotoelétricas. Set-Top Box: é o equipamento que permite aos atuais televisores receber e decodificar os novos sinais de Televisão Digital transmitidos pelas emissoras, além de fornecer um canal de retorno que pode ser ligado à rede telefônica ou de transmissão de dados em alta velocidade, permitindo que o telespectador forneça algum tipo de informação ao programa assistido, originando o fator interatividade. Conterá um ou mais microprocessadores para executar o sistema operacional, memória para poder armazenar temporariamente alguns dados, um decodificador de vídeos em formato MPEG e processadores específicos para trabalhar com os diversos canais de áudio. Streaming: é uma forma de distribuir informação multimídia numa rede através de pacotes. Ela é frequentemente utilizada para distribuir conteúdo multimídia através da Internet. Em streaming, as informações da mídia não são usualmente arquivadas pelo usuário que está recebendo a stream, a mídia geralmente é constantemente reproduzida à medida que chega ao usuário se a sua banda for suficiente para reproduzir a mídia em tempo real. Suscetível: que envolve possibilidade de certa coisa. T Text fields: é uma área de linha que permite ao usuário a entrada de texto. TV aberta: possui canais onde as emissoras realizam transmissão de sinal gratuita a todos os telespectadores.
  • 79. 77 W Widescreen: é o termo em inglês para se definir Tela Larga, cujos aparelhos com essa característica possuem razão de aspecto de 16 x 9. São ideais para se ver filmes, pois possui uma imagem mais próxima da visão humana.
  • 80. 78 ANEXOS ANEXO A: CLASSES ADICIONAIS Foi necessário modificar o botão fornecido pela API HAVi, para que as cores do botão pudessem ser mudadas quando um botão perde ou ganha foco e para que fosse possível controlar a posição do rotulo do botão quando o menu de vídeos agendados está sendo exibido. A classe HButtonColor é a responsável pela mudança, esta classe extend da classe HTextButton da API HAVi. Abaixo as figuras ilustram o diagrama da classe e as diferenças dos botões da classe HButtonColor e HTextButton no aplicativo “Arquivo TV”. Diagrama da classe HButtonColor
  • 81. 79 Botões com a classe HButtonColor com foco no terceiro botão (Agendar Vídeo) Botões com a classe HTextButton com foco no primeiro botão (Vídeo)
  • 82. 80 Também foi necessário criar uma classe que estabelecesse um limite de caracteres a ser adicionado e permitisse somente inserção de números na caixa de texto (JTextField) da API Swing, pois no Sistema Administrativo ao adicionar informações sobre os pacotes e vídeos eram necessários estes requisitos. A classe JTextFieldLimit é a responsável. Esta classe extend da classe PlainDocument da API Swing, abaixo o diagrama da mesma. Diagrama da classe JTextFieldLimit
  • 83. 81 ANEXO B: MANUAL DO USUÁRIO REQUISITOS DE INSTALAÇÃO Para que o aplicativo “Arquivo TV” e o Sistema Administrativo funcionem corretamente é necessário observar alguns requisitos minímos: o computador que irá recebê- los deverá possuir o Sistema Operacional Windows XP ou superior, processador de 1.6 Ghz, placa de vídeo de 128 Mb para simular o aplicativo “Arquivo TV” no emulador XleTView e uma placa de som. Para a sua instalação executa-se o arquivo “Setup.exe” que se encontra no diretório raiz do CD. Ao ser executado, pede-se o idioma ao usuário para iniciar o programa de instalação. Após isso, clica-se em avançar. É apresentado o contrato do sistema, onde o usuário seleciona a opção “Eu aceito os termos do contrato” e clica em Avançar. O programa de instalação pergunta se o usuário deseja adicionar ícones na área de trabalho ou na barra de inicialização rápida do Windows, onde se o usuário desejar adicioná-los, basta selecionar as opções e clicar em Avançar. Logo após, ao clicar em Instalar o aplicativo “Arquivo TV” e o Sistema Administrativo será instalado no diretório padrão do computador do usuário. Lembrando que para a execução do Sistema Administrativo o login padrão é “administrador” e a senha padrão para o seu acesso é “admin2009”. Caso o usuário desejar criar, alterar ou excluir logins e senhas, o mesmo deve acessar o arquivo “Login.xml” que se encontra no mesmo local do Sistema Administrativo e alterar manualmente o arquivo XML com as novas informações.
  • 84. 82 APRESENTAÇÃO DAS TELAS E FUNCIONAMENTO Ao iniciar o Sistema Administrativo, primeiramente é exibido o logotipo da aplicação. Em seguida é solicitado ao usuário o seu nome e a senha. Para sua autenticação, o sistema verifica em um arquivo XML as informações correspondentes ao mesmo. Tela de Login Após a autenticação, é exibido o Menu Principal do sistema conforme a figura a seguir. Através deste menu, é possível gerenciar os pacotes dos vídeos, onde pode-se criá- los ou excluí-los; também é possível gerenciar os vídeos, podendo adicioná-los ou removê-los dos pacotes existentes.
  • 85. 83 Menu Principal Na janela “Gerenciar Pacotes”, ao adicionar um pacote, o sistema cria um diretório com o nome dado pelo usuário no local padrão e cria-se um novo arquivo XML com o mesmo nome para adicionar informações sobre os vídeos adicionados. Do mesmo modo, ao excluir um pacote, o diretório e o arquivo XML pertencentes ao mesmo são excluídos, juntamente com todos os seus vídeos. A figura a seguir mostra o funcionamento da janela de “Gerenciar Pacotes”.
  • 86. 84 Janela Gerenciar Pacotes Na janela “Gerenciar Vídeos”, é possível navegar, adicionar ou excluir um vídeo. Para adicionar, o usuário escolhe um pacote, pressiona o botão Novo, preenche todas as informações, adicionando também a foto e o caminho. Se o usuário não quiser adicionar o vídeo, clica-se no botão Cancelar. Mas se quiser adicioná-lo, clica-se no botão OK, onde o mesmo realiza uma cópia para o diretório do sistema e adiciona as informações no arquivo XML pertencente ao pacote escolhido. Caso, durante a cópia do vídeo o usuário desista de copiá-lo, clica-se em Cancelar Cópia. A figura abaixo mostra o funcionamento da janela “Gerenciar de Vídeos”. Janela “Gerenciar Vídeos”
  • 87. 85 Ao iniciar o emulador XleTView é apresentada sua tela com o logotipo do aplicativo no fundo, como mostra a figura abaixo. Tela inicial do emulador com o logotipo do aplicativo Iniciada a aplicação, o telespectador pressiona o botão vermelho e é acionado o Menu Principal, onde o mesmo pode listar os pacotes e vídeos, agendá-los e sair da aplicação, fazendo isso através das teclas de navegação, e pelos seus respectivos botões podem ser acionados pressionando o botão OK do controle remoto, conforme a figura a seguir.
  • 88. 86 Tela do Menu Principal Ao listar os vídeos pressionando OK quando o botão vídeos estiver selecionado, é apresentado ao telespectador os vídeos do pacote atual, conforme mostra a figura abaixo. Listagem de vídeos do pacote
  • 89. 87 Para escolher um vídeo, o telespectador deve navegar por entre os mesmos através das setas do controle remoto para selecioná-lo e apertar OK. Para não ficar muita informação na tela durante a execução, são criados sub-menus de até seis vídeos, onde pode- se navegar pelos sub-menus através dos botões “+” ou “-“ para escolher o vídeo desejado. O aplicativo também mostrará informações sobre os vídeos que estão sendo executados. Durante a execução, o telespectador pode apertar o botão azul do controle remoto, onde aparecem na tela o nome, ano, tipo, descrição e imagem referente ao vídeo, como mostra a figura abaixo. Para ocultar as informações, basta apertar novamente o botão azul ou o botão EXIT do controle remoto. Tela com as informações do vídeo em execução A principal funcionalidade do aplicativo é o agendamento de vídeos para uma determinada data e horário. Para fazer isso, o telespectador, estando no Menu Principal, que se acessa através do botão vermelho do controle remoto, deve-se navegar pelas setas até o botão de Agendar Vídeos e pressionar OK. Com isso, aparecem os pacotes disponíveis para a escolha, onde o telespectador o seleciona e pressiona OK. Logo após, o aplicativo lista todos os vídeos, onde o telespectador seleciona qual deseja agendar e pressiona OK. Em seguida, o aplicativo solicita ao telespectador a data e hora desejados para o agendamento como
  • 90. 88 mostrado a figura a seguir, e o mesmo informa estes dados ao aplicativo respeitando as regras de agendamento, ou seja, não é permitido: agendar um vídeo em data e horários inválidos ou ultrapassados, efetuar dois agendamentos com o mesmo nome e agendar vídeos diferentes com a mesma data e horário. Respeitando estas regras, o aplicativo solicita ao telespectador a confirmação do agendamento e o mesmo o confirma através do botão OK ou o cancela através do botão EXIT. Agendamento de vídeos Confirmado o agendamento pelo telespectador é possível vê-lo através do botão Agendar Vídeos, onde aparecem todos os vídeos agendados conforme mostra a próxima figura.
  • 91. 89 Tela com os vídeos agendados Através do Menu Agendar Vídeos também é possível excluir um agendamento existente. Para isso após entrar no menu, deve-se escolher a opção de Excluir Agendamento, seleciona-lo e apertar OK. Como é mostrado através da figura a seguir, ao pressionar OK quando o botão sair estiver selecionado, é solicitado ao telespectador o modo como deseja sair, se somente deseja encerrar a aplicação ou gravando a posição do vídeo atual para terminar de assistí-lo mais tarde. Escolhendo a última opção, as informações do vídeo são gravadas em um arquivo XML juntamente com a sua posição de parada, retornando a esta posição na próxima vez que o aplicativo for executado. Porém, se o telespectador escolher por continuar, pressiona-se o botão azul do controle remoto, e o aplicativo retorna para o Menu Principal. Mas, se for escolhida a opção sair, pressionando o botão EXIT do controle remoto, o aplicativo encerra a sua operação sem gravar nenhuma informação no arquivo XML.
  • 92. 90 Tela do Menu Sair.

×