Вы находитесь на странице: 1из 25

Ferramentas de Acessibilidade para TV Digital Interativa com Java

Marcos Vincius Henke Arnoldo Orientadora: Karen Selbach Borges Universidade Luterana do Brasil (ULBRA) Curso Tecnolgico de Anlise e Desenvolvimento de Sistemas
marcos.henke@gmail.com, www.b4it.com.br

Resumo. O objetivo deste trabalho disponibilizar prottipos de ferramentas que fazem uso da interatividade local da TV digital para a comunidade de desenvolvedores visando a disseminao da tecnologia no Brasil. Para tanto, foi estudada a linguagem de programao Java e as APIs que compem o padro de middleware GEM. A contribuio deste trabalho sociedade o desenvolvimento de ferramentas de acessibilidade para portadores de determinadas necessidades especiais. Para identificao das necessidades e ferramentas foram analisados o Decreto-lei 5296 (Lei de Acessibilidade), a norma ABNT NBR 15290 (Acessibilidade em Comunicao na Televiso) e outras ferramentas semelhantes j disponveis para computadores pessoais.

Introduo

A televiso um meio de comunicao popular presente em 97,03% dos 53,1 milhes de domiclios brasileiros, sendo inclusive comum a existncia de mais de um aparelho em diversas delas. Nas classes sociais mais baixas (D e E) esse ndice chega a 93,31%, como podemos ver na Tabela 1, e muitas vezes a nica forma de acesso informao destas famlias.
Tabela 1: Proporo de domiclios que possuem equipamentos de Tecnologia da Informao e Comunicao (NIC, 2007)
Percentual (%) Total SUDESTE NORDESTE REGIES DO PAS SUL NORTE CENTRO-OESTE AT R$300 R$301-R$500 RENDA FAMILIAR R$501-R$1000 R$1001-R$1800 R$1801 OU MAIS A CLASSE SOCIAL B C DE Televiso Antena parablica TV a cabo Rdio Com putador Acesso Internet 97,03 97,8 95,89 96,86 95,7 96,71 86,76 95,93 97,86 98,53 99,82 100 99,93 99,74 93,31 15,93 13,36 18,29 16,53 18,84 20,46 10,27 11,45 14,44 21,94 25,26 21,51 25,27 16,62 11,76 5,36 7,82 1,73 4,6 2,74 3,22 0 0,9 2,71 9,82 20,57 45,73 17 4,51 0,79 89,61 92,66 85,63 94,73 75,66 83,8 77,27 84,85 90,49 95,59 96,34 99,58 99,13 95,14 80,62 19,3 23,83 8,38 24,24 9,97 18,35 1,57 2,36 13,73 36,27 59 82,79 62,18 18,55 2,76 14,49 18,74 5,54 16,9 6,15 13,05 0,46 1,22 8,9 27,33 50,53 81,49 51,22 12,1 1,61

A sociedade no mais baseada na mo-de-obra e no capital, e sim na informao e no conhecimento. Quem no participa da Sociedade da Informao considerado excludo social e o acesso Internet ampliou ainda mais as diferenas, 1

devido ao elevado custo de aquisio e manuteno de um computador com acesso rede. Desta forma, as classes mais altas adquirem maior conhecimento de forma mais rpida e conquistam as melhores oportunidades, enquanto as classes menos favorecidas permanecem desprovidas deste benefcio (MONTEZ & BECKER, 2006). Ciente dessa necessidade de informao, o governo brasileiro mantm diversos programas de incluso social e est popularizando o computador e a Internet como meio de acesso informao, principalmente em escolas pblicas, mas no se pode ignorar a televiso e o rdio como mais um mecanismo de incluso. Dentro deste contexto, a TV digital, que significa transmisso de vdeo, udio e dados em formato binrio independente do meio, possui tecnologias que permitem interatividade e multiprogramao, por exemplo, e que podem auxiliar de forma expressiva a incluso social atravs da incluso digital. No lanamento oficial das transmisses digitais, ocorrido em 02 de dezembro de 2007 em So Paulo, o custo para possuir um receptor foi considerado impraticvel pelos principais formadores de opinio do setor. Porm, esto sendo executadas medidas de popularizao da TV digital atravs de campanhas educativas, incentivos a fabricantes de TVs e receptores (set-top-boxes) para reduo do custo e linhas de financiamento, viabilizando assim o acesso das classes mais baixas a esse meio de acesso informao. Aprofundando-se mais na questo da incluso social, de acordo com o Decretolei 5296, que define a Lei de acessibilidade, a TV digital dever ser dotada de recursos para portadores de necessidades especiais visuais e auditivas, e as funcionalidades disponveis no novo sistema facilitam esta tarefa. Outro ponto a considerar seria o de telespectadores com dificuldades de viso que, por exemplo, compartilham um mesmo aparelho com outras pessoas, sendo possvel at mesmo que portadores de outras necessidades diferentes o utilizem. Levando isto em considerao, este trabalho prope como objetivo uma soluo para esta questo atravs do desenvolvimento de uma ferramenta para criao de Perfis de Acessibilidade, alm de divulgar a tecnologia empregada para a comunidade de desenvolvedores utilizando ferramentas gratuitas de desenvolvimento e testes disponveis at o momento. O captulo 2 apresenta os principais conceitos e tecnologias que envolvem o Sistema Brasileiro de Televiso Digital (SBTVD) e algumas consideraes sobre incluso social e acessibilidade. No captulo 3 sero expostas as ferramentas desenvolvidas utilizando a linguagem Java e as APIs (Application Program Interfaces, Interfaces do Programa de Aplicao) utilizadas. No captulo 4 sero relatadas as concluses derivadas da produo deste trabalho.

Referencial Terico

Neste tpico ser apresentada a pesquisa bibliogrfica sobre os temas estudados para a construo deste trabalho, os principais conceitos sobre televiso digital interativa e acessibilidade, assim como a contextualizao dos padres e bibliotecas existentes para o desenvolvimento de aplicaes interativas. A TV Digital Interativa viabilizada atravs de um conjunto de equipamentos e sistemas e envolve diversas organizaes e interesses. Para o telespectador, que nesse ponto passa a ser tambm um usurio, a interao se d atravs de um conjunto de 2

hardware e software, onde o hardware o aparelho receptor (set-top-box) ou TV com este dispositivo embutido e o software engloba o middleware e aplicaes associadas a servios.

Figura 1: Diagrama de fluxo de informao (MC, 2007)

Pode-se observar na Figura 1 o fluxo de informao entre o produtor de contedo e as aplicaes interativas que so executadas nos terminais de acesso. Os dados, o udio e o vdeo so codificados (compactados), modulados e transmitidos pelas emissoras atravs do canal de radiodifuso e captados pelos receptores ou TVs com este recurso integrado. O aparelho receptor, ou terminal de acesso, efetua ento a demodulao e decodificao do contedo e o exibe apropriadamente. Quando as aplicaes interativas necessitarem enviar dados do terminal de acesso para as emissoras, a operao ser efetuada atravs do Canal de Retorno e a resposta ser recebida pelo chamado Canal de Descida. Estes dois canais formam ento o Canal de Interatividade, elemento opcional nos set-top-boxes (MC, 2007). 2.1 Middleware

Middleware o software que opera entre as aplicaes e o sistema operacional do receptor, como podemos ver na Figura 2. Oferece um servio padronizado para as aplicaes ocultando particularidades das camadas inferiores (compresso, transporte, modulao) e permite a portabilidade para qualquer receptor digital que contenha o middleware instalado (MONTEZ & BECKER, 2006). 2.2 Sistemas e Padres

O governo brasileiro testou, atravs de entidades como ABERT/SET, os trs principais padres mundiais de TV digital existentes e os resultados se encontram disponveis no site da SET (2000). Devido a interesses polticos, financeiros, tecnolgicos e culturais, houve indefinio na deciso sobre a escolha de um dos padres ou o desenvolvimento de um prprio. A burocracia demasiada para obteno da documentao e recursos para os projetos de pesquisa resultou no cancelamento de diversas linhas de pesquisa em universidades. 3

Figura 2: Camadas do aparelho receptor do SBTVD (GINGA, 2007)

A seguir, ser feita uma apresentao sucinta dos principais padres mundiais existentes e a deciso brasileira, que iniciou as transmisses em dezembro de 2007 (MC, 2007). 2.2.1 Padro Europeu (DVB-MHP) Sistema de transmisso: DVB (Digital Vdeo Broadcasting) O enfoque inicial deste sistema foi a interatividade em detrimento da qualidade. Middleware: MHP (Multimedia Home Platform) Baseado no uso de uma JVM (Java Virtual Machine) e um conjunto de APIs possibilita que programas feitos em Java acessem recursos do receptor de forma padronizada. Uma aplicao DVB que utiliza Java chamada DVB-J. Na especificao 1.1 do MHP foi introduzido o DVB-HTML. Possibilita, dentre diversos outros recursos, o download de aplicaes que so armazenadas em memria persistente e acesso a smart-cards. O padro DVB-MHP utilizado, alm dos pases europeus, na Austrlia, Malsia, ndia, frica do Sul e Honk-Kong na China (MONTEZ & BECKER, 2006). 2.2.2 Padres Americanos (ATSC-DASE e OCAP) ATSC-DASE: Terrestre o Sistema de Committee) transmisso: ATSC (Advanced Television Systems

O principal enfoque deste sistema a transmisso em alta definio (HDTV, High Definition Television), em detrimento da interatividade e multiprogramao. Apresenta problemas na recepo atravs de antenas internas e no suporta recepo em dispositivos mveis, como por exemplo, em celulares. o Middleware: DASE (Digital TV Application Software Environment) Utiliza JVM (Java Virtual Machine) e permite o uso de linguagens declarativas, como o HTML. utilizado nos Estados Unidos, Canad, Coria do Sul e Taiwan (MONTEZ & BECKER, 2006). 4

CableLabs-OCAP (OpenCable Applications Platform): Baseado no MHP europeu o middleware utilizado nas transmisses de TV a cabo dos Estados Unidos e possui grande influncia na questo da padronizao de middlewares (MORRIS & SMITH-CHAIGNEAU, 2005).

2.2.3 Padro Japons (ISDB-ARIB) Sistema de transmisso: ISDB (Integrated Services Digital Broadcasting) As vantagens deste sistema em relao aos demais so a flexibilidade de operao, boa recepo em antenas internas ou reas encobertas e o bom suporte a aplicaes mveis. Middleware: ARIB (Association of Radio Industries and Businesses) Definido pela organizao de mesmo nome, esse middleware formado por alguns padres, como: o ARIB STD-B23 (Application Execution Engine Platform for Digital Broadcasting), baseada no middleware MHP, indica uma tendncia de entrar em conformidade com o DVB-MHP, como veremos adiante. o ARIB STD-B24 (Data Coding and Transmission Specification for Digital Broadcasting), define uma linguagem declarativa denominada BML (Broadcast Markup Language), baseada em XML (Extensible Markup Language), usada para especificao de servios multimdia para TV digital (TONIETO, 2006). O padro ISDB-ARIB utilizado somente no Japo, at ento (MONTEZ & BECKER, 2006). 2.2.4 Sistema Brasileiro de Televiso Digital (SBTVD) O governo brasileiro anterior a 2003 defendia a escolha e aplicao integral de um dos trs padres de transmisso terrestre citados nos tpicos anteriores. A necessidade de baixo custo dos receptores para tornar acessvel s camadas mais pobres da populao tambm influenciou na deciso de desenvolver um padro nacional livre de licenas e royalties, a exemplo da deciso tomada pela China (MORENO, 2006). Como houve atraso no cronograma devido a diversos fatores, em 2006 foi determinado como padro de transmisso o japons ISDB com algumas melhorias, chamado ISDB@Tb, e como middleware o brasileiro Ginga, apesar de seu nome no ser citado no decreto 5.820 de junho de 2006 (MONTEZ & BECKER, 2006). 2.2.4.1 Ginga Ginga o nome do middleware brasileiro desenvolvido para executar sobre o padro ISDB@Tb. O padro se subdivide em: Ginga-NCL: ambiente de apresentao. Assim como o BML japons e o DVBHTML, uma linguagem de marcao como o XML, porm mais adequada para manipular hipermdia (MORENO, 2006). Ginga-J: ambiente de execuo. Semelhante ao DVB-J, uma linguagem procedural derivada do padro japons ARIB B23 e projetada para ser 5

compatvel com o GEM (Globally Executable MHP, MHP Globalmente Executvel) em primeira instncia. Este trabalho foi desenvolvido considerando que o middleware brasileiro suportaria as APIs contidas no GEM. Porm devido ao custo de licenciamento das bibliotecas proprietrias contidas no referido padro, em maro de 2008 o Frum SBTVD e a Sun Microsystems (SUN), fabricante da linguagem de programao Java e da API Java TV, assinaram um memorando para unir foras no desenvolvimento de uma plataforma open-source de desenvolvimento para TV digital. Com esta iniciativa a nova especificao, desenvolvida sobre a mesma base que outros padres mundialmente adotados, oferecer uma alternativa de baixo custo e ser disponibilizada mundialmente atravs do Frum SBTVD (SUN MICROSISTEMS). Apesar da definio oficial que as APIs sero substitudas, durante a fase de construo deste prottipo a utilizao do GEM era o que havia de concreto e disponvel para a comunidade de desenvolvedores, por isso a deciso de manter a sua utilizao. Acredita-se que ser necessrio um esforo futuro para converso das aplicaes para que elas se tornem compatveis com o novo padro e ainda no h estudo disponvel sobre o impacto das alteraes. Considerando, ento, ainda a utilizao do GEM, a Figura 3 ilustra a compatibilidade do Ginga-J com outros sistemas, onde a API Vermelha indica recursos suportados somente no padro brasileiro (identificado na imagem como ISDB@B e chamado atualmente de ISDB@Tb). A API Amarela representa recursos que podem ser adaptados a outros padres e a API Verde simboliza recursos compatveis com os padres que suportam o GEM (GINGA, 2007). No prximo tpico sero citadas as bibliotecas utilizadas no prottipo.

Figura 3: Compatibilidade do Ginga-J com outros sistemas (GINGA, 2007)

2.3

Bibliotecas de suporte a middlewares

Quando os middlewares surgiram j existiam vrias bibliotecas e APIs para trabalhar com multimdia para a Internet e equipamentos de vdeo; estes recursos foram aproveitados e adaptados ao contexto da TV digital. No momento em que a Sun Microsystems desenvolveu a API Java TV, esta foi prontamente adotada pelos middlewares (MONTEZ & BECKER, 2006). A API Java TV, diferentemente de aplicaes comuns Java, utiliza uma nica JVM para controlar o ciclo de vida dos Xlets, a exemplo dos Applets utilizados em navegadores Web, com a diferena da incluso do estado Pausado. Prov um meio da 6

aplicao se comunicar com o seu ambiente de execuo e possui um gerente de aplicaes que controla o estado do Xlet, que pode alternar entre cinco estados principais: No-carregado, Carregado (Loaded), Pausado (Paused), Iniciado (Started) e Destrudo (Destroyed), como podemos ver na Figura 4 (MORRIS & SMITHCHAIGNEAU, 2005, p. 64).

Figura 4: Ciclo de vida de um Xlet (MORRIS & SMITH-CHAIGNEAU, 2005)

Para este trabalho, que considerou o suporte ao GEM conforme explicitado no captulo anterior, fez-se uso da biblioteca HAVi. Criada por um grupo de fabricantes incluindo Matsuchita/Panasonic, Sharp, Sony e Toshiba com o intuito de integrar TVs, DVDs e cmeras de vdeo, utiliza uma API Java para funes do controle remoto, displays e grficos de TV e requer pagamento de licena para sua utilizao e distribuio (MONTEZ & BECKER, 2006, p. 124). Em fevereiro de 2009 foi disponibilizada ao pblico a especificao da nova API efetuada pela SUN, chamada Java DTV, e aguardada a liberao de sua implementao pelo Frum do SBTVD. 2.4 Tipos de Receptores Digitais

Os receptores possuem limitaes de memria, resoluo grfica e capacidade de armazenamento quando comparados aos computadores modernos e exigem que os desenvolvedores considerem estas limitaes de ambiente ao projetar suas aplicaes. Devem considerar ainda os diferentes tipos de receptores e os recursos que cada categoria suporta. No relatrio dos consrcios do SBTVD os pesquisadores do middleware brasileiro Ginga propem a diviso dos receptores de acordo com as suas funcionalidades, visando atender a diferentes segmentos da sociedade e suas necessidades (TONIETO, 2006). As diferenas tcnicas consistem basicamente entre suportar interatividade, canal de retorno, gravao do contedo, integrao com dispositivos mveis, comando de voz, captura de vdeo e suporte a funcionalidades do middleware. 2.5 Interatividade

Interatividade, para a TV digital, significa que o usurio pode influenciar na forma e contedo do que est assistindo, se comunicar e realizar diversos tipos de operaes atravs dos servios e aplicaes disponveis. Os nveis de interatividade, segundo Fernandes et al. (apud TONIETO, 2006), podem ser classificados em local e remoto, sendo este ltimo subdividido entre intermitente e permanente. 7

2.6

Servios e Aplicaes

No ambiente da TV digital os servios so executados nos servidores das emissoras e as aplicaes no aparelho receptor. Conforme mencionado no tpico anterior, a interatividade pode ser local ou remota; ento, para haver a interatividade remota, as aplicaes necessitam se comunicar com servios atravs do canal de interatividade. Os tipos de servios interativos podem ser classificados, segundo Freed (apud TONIETO, 2006), em: TV Avanada (Enhanced TV); TV Individualizada (Individualized TV); Personal TV, tambm chamado de PVR (Personal Video Recorder) ou DVR (Digital Video Recorder); EPGs, Guias Eletrnicos de Programao (Eletronic Program Guides); Internet TV; On-Demand TV; Play TV e Banking & Retail, aplicaes de banco e comrcio eletrnico. J as aplicaes interativas podem ser classificadas em: T-learning ou Educational TV, aplicaes de Ensino a Distncia (EAD); Community TV, votaes, veiculao de informaes, suporte a comunidades virtuais, informaes direcionadas a grupos especficos; Global TV, programao internacional com traduo automtica de lngua; T-Commerce, comrcio eletrnico atravs da TV; T-Governo; T-mail e TV sade. As aplicaes governamentais possuem forte caracterstica de incluso social, que tambm preocupao deste trabalho, como ser descrito a seguir. 2.7 Incluso Social e Acessibilidade

A incluso social atravs da incluso digital uma maneira de disponibilizar informao s pessoas de baixo poder aquisitivo, portadores de deficincia fsica e idosos, entre outros, que no tem acesso a educao formal, Internet e outros meios. Sendo a TV digital um meio de se obter informao e, atravs da interatividade, participar da elaborao de contedo, importante garantir que o maior nmero de pessoas possa usufruir desses benefcios. O Decreto-lei 5296 de 2 de dezembro de 2004, a Lei de Acessibilidade, define o seguinte em relao televiso:
Art. 52. Caber ao Poder Pblico incentivar a oferta de aparelhos de televiso equipados com recursos tecnolgicos que permitam sua utilizao de modo a garantir o direito de acesso informao s pessoas portadoras de deficincia auditiva ou visual. Pargrafo nico. Incluem-se entre os recursos referidos no caput: I - circuito de decodificao de legenda oculta; II - recurso para Programa Secundrio de udio (SAP); e III - entradas para fones de ouvido com ou sem fio. 2o A regulamentao de que trata o caput dever prever a utilizao, entre outros, dos seguintes sistemas de reproduo das mensagens veiculadas para as pessoas portadoras de deficincia auditiva e visual: I - a subtitulao por meio de legenda oculta; II - a janela com intrprete de LIBRAS; e III - a descrio e narrao em voz de cenas e imagens. 3o A Coordenadoria Nacional para Integrao da Pessoa Portadora de Deficincia - CORDE da Secretaria Especial dos Direitos Humanos da

Presidncia da Repblica assistir a ANATEL no procedimento de que trata o 1o. Art. 56. O projeto de desenvolvimento e implementao da televiso digital no Pas dever contemplar obrigatoriamente os trs tipos de sistema de acesso informao de que trata o art. 52.(BRASIL, 2004)

A norma ABNT NBR 15290:2005 (NBR15290, 2005), Acessibilidade em Comunicao na Televiso, define os padres de formatao e exibio de recursos como legendas ocultas (Closed Captions), SAP (Secondary Audio Program, Programa de udio Secundrio), janela de exibio de LIBRAS (sistema lingstico de comunidades surdas do Brasil) e cores de fundo, entre diversos outros elementos. Este trabalho visa explorar os recursos avanados de interatividade local disponveis nos receptores digitais de televiso compatveis com Java TV e GEM, oferecendo ferramentas extras de acessibilidade no mencionadas no Decreto-lei 5296, mas j disponveis em sistemas operacionais contemporneos, como Lente de Aumento, Teclado e Controle Remoto virtuais, configurveis atravs de perfis. At o momento, no se tem conhecimento de trabalhos semelhantes relacionados TV digital.

Apresentao e Descrio do Gerenciador de Perfis de Acessibilidade

Com o objetivo citado no captulo 1 de tornar a experincia de uso da TV digital acessvel a um maior nmero de pessoas e facilitar a entrada de dados em programas interativos foram desenvolvidas as ferramentas Teclado Virtual, Controle Remoto Virtual e Lente de Aumento, utilizando tecnologia Java atravs de APIs presentes no padro de middleware GEM. Considerando a questo de diferentes necessidades para diferentes pessoas que assistem a um mesmo aparelho, foi implementada a funcionalidade Perfis de Acessibilidade, onde podem ser configurados at trs perfis diferentes, habilitando os recursos desejados para cada um. Estes perfis podem ser gerenciados e aplicados atravs de um Menu de Acessibilidade, ativado pelo controle remoto, e so persistidos em um arquivo XML armazenado no set-top-box. Este recurso permite ainda, por exemplo, que um perfil seja ativado em determinados programas e desativado em outros por um mesmo telespectador. Cada Perfil de Acessibilidade suporta a configurao dos recursos Lente de Aumento, Legendas (Closed Captions), Mudo, Volume alto e Controle Remoto Virtual. Os recursos Controle Remoto Virtual e Lente de Aumento podem ainda ser ativados e desativados rapidamente e de forma independente, sem a necessidade da configurao de um perfil para isso, e tambm so acessveis atravs do menu. Estas ferramentas sero detalhas no prximo tpico. 3.1 Ferramentas Implementadas

Neste captulo sero descritas as ferramentas de acessibilidade desenvolvidas e suas particularidades: a) Teclado Virtual: consiste em um mecanismo de entrada de caracteres para campos de texto exibido na tela da TV, podendo ser utilizado em qualquer aplicao que necessite digitao de texto pelo usurio, como formulrios de login, T-commerce, T-mail e muitos outros. A motivao para o desenvolvimento desta ferramenta a rara disponibilidade de um dispositivo de 9

digitao conectado a um set-top-box, como um teclado alfanumrico, sendo que na quase totalidade dos casos o usurio dispe apenas do controle remoto e a digitao se d atravs do pressionamento consecutivo das teclas numricas ou direcionais, a exemplo da digitao em aparelhos celulares. Este recurso comumente encontrado em videogames, onde apenas se dispe de um joystick para a operao. Pode-se observar na Figura 5 um exemplo de aplicao utilizando o Teclado Virtual para digitao de texto. Ao focar o campo o teclado exibido e ao escolher a tecla virtual OK ou ENTER o teclado ocultado.

Figura 5: Teclado Virtual

Segundo Schwalb (2003), existem interfaces prprias para a implementao de dispositivos virtuais, como a HKeyboardInputPreferred da API HAVi, e classes e mtodos para verificar as capacidades do sistema, ou seja, se o set-top-box possui um teclado ou mouse conectado. Para este prottipo no foi requerida sua utilizao, mas para trabalhos futuros estuda-se utilizar a classe especfica para a atividade da nova API Java DTV, chamada com.sun.dtv.ui.Keyboard. b) Controle Remoto Virtual: devido dificuldade de algumas pessoas para enxergar os pequenos botes de um controle remoto, principalmente idosos e portadores de hipermetropia, foi desenvolvido este prottipo que visa possibilitar maior interatividade e por conseqncia incluso digital destas pessoas, sem a necessidade de aquisio de um controle especial. exibida uma interface na tela da TV que reproduz os comandos de um controle remoto real, como ilustrado na Figura 6. A visualizao das teclas , ento, facilitada para o telespectador, principalmente em telas com tamanho superior a 20 (vinte polegadas). Este precisar somente utilizar os botes direcionais e OK do controle real para selecionar e disparar os comandos desejados no controle virtual.

10

Figura 6: Controle Remoto Virtual

Quando o telespectador seleciona o boto desejado e o pressiona gerado um evento contendo o cdigo da tecla e redirecionado ao middleware, que se encarregar de processar o comando apropriadamente. Como a proposta deste trabalho apresentar apenas um prottipo, no foi realizado um estudo de ergonomia e design em relao s cores e tamanho de texto adequado para maximizar o benefcio deste recurso, ficando como sugesto para implementaes futuras. A imagem utilizada de fundo do Controle Remoto Virtual distribuda juntamente com o Ginga-NCL Player (GINGA, 2007). A classe HRcCapabilities da API HAVi possui um mtodo chamado getRepresentation(), que retorna o texto, a cor e o smbolo de cada tecla, sendo possvel exibir corretamente um boto em uma determinada plataforma (SCHWALB, 2003). Nos testes efetuados no emulador este mtodo retornou nulo. Conforme a documentao da API Java DTV ser disponibilizada a classe com.sun.dtv.ui.RemoteControl, que representa o controle remoto, mas at o momento no h maiores informaes de suas caractersticas. c) Lente de Aumento: na concepo desta ferramenta foi definido que seriam efetuados o redimensionamento e reposicionamento do vdeo para proporcionar uma melhor visualizao para idosos e portadores de miopia dificuldade para ver ao longe. As APIs JavaTV e HAVi fornecem classes e mtodos distintos, mas prprios para esta operao. Entretanto, o resultado esperado no pde ser observado, devido a limitaes do emulador e do player de vdeo, pois no foi possvel centralizar a imagem ampliada, seja atravs do reposicionamento, seja pela seleo parcial do vdeo para ampliao. Na Figura 7, em todas as imagens o ponto X,Y indica a posio inicial do vdeo, W = Width (Largura) e H = Height (Altura). Na imagem A, o retngulo vermelho simboliza a rea visvel do vdeo. As coordenadas seriam, por exemplo: X=0, Y=0, W=800, H=600. A imagem B seria o resultado do vdeo redimensionado e posicionado em um ponto X,Y com coordenadas negativas, ou seja, anteriores ao incio da rea visvel da TV. As coordenadas seriam: X=-112, Y=-84, W=1024, H=768 (sendo que a rea visvel permanece sempre a mesma). Neste caso, era esperado que a parte principal do vdeo permanecesse visvel,

11

mesmo aumentada, fornecendo assim uma melhor visualizao por pessoas com miopia, por exemplo, e sem perder detalhes importantes do vdeo.

Figura 7: Limitao do ambiente impossibilitou o recurso Lente de Aumento

Mas, ao efetuar o comando de redimensionamento, o mtodo desconsidera os pontos X,Y negativos e posiciona o vdeo na coordenada 0,0. Portanto, as reas mais direita e inferiores do vdeo acabam sendo perdidas pelo espectador, como podemos perceber na imagem C. Foi ensaiada outra abordagem: na imagem D, o retngulo azul simboliza a rea que se deseja exibir e ampliar. As coordenadas seriam: X=80, Y=60, W=640, H=480. A imagem E seria o resultado do redimensionamento para as coordenadas: X=0, Y=0, W=800, H=600. Como no h X,Y negativo, se esperava que o retngulo menor do vdeo ocupasse a rea total visvel, mas aps efetuar a chamada do mtodo de redimensionamento no se constatou nenhuma alterao. Foram experimentados mtodos das bibliotecas AWT e HAVi, e em nenhum caso foi obtido sucesso. Espera-se em trabalhos futuros testar a ferramenta em um ambiente real para comprovar se a mesma obter xito em sua proposta. 3.2 Implementaes

A seguir sero apresentados os principais diagramas que descrevem a estrutura e processos do prottipo. 3.2.1 Diagrama de Casos de Uso A Figura 8 representa atravs dos Casos de Uso as funcionalidades do prottipo disponveis ao telespectador.

12

Figura 8: Diagrama de Casos de Uso

a. Configura perfil: esta funcionalidade permite ao telespectador (ou usurio) habilitar as ferramentas de acessibilidade desejadas. Podem ser configurados at trs perfis diferentes. b. Persiste em arquivo XML: ao escolher a opo Gravar, a configurao do perfil armazenada em formato XML em um arquivo no set-top-box, podendo ento ser recuperada a qualquer momento, seja para alterao ou para utilizao. O arquivo permanece armazenado mesmo que o aparelho seja desligado. c. Ativa perfil: esta funcionalidade l a configurao previamente armazenada e ativa as ferramentas configuradas para o perfil selecionado. d. Ativa/desativa recursos rpidos: ativa ou desativa a ferramenta de acessibilidade selecionada instantaneamente, sem a necessidade de vnculo a um determinado perfil. e. Utiliza Controle Remoto Virtual: quando esta ferramenta estiver habilitada qualquer boto pressionado pelo telespectador no controle remoto real exibir na tela da TV o Controle Remoto Virtual. O usurio utiliza, ento, os botes direcionais e o boto OK do controle real para selecionar e pressionar os botes do controle virtual. f. Utiliza Teclado Virtual: esta funcionalidade visa facilitar o preenchimento de campos de formulrios. Consiste na exibio de caracteres alfanumricos, permitindo que o usurio os selecione e insira no campo focado atravs dos botes direcionais e OK do controle remoto real. 3.2.2 Diagrama de Classes A estrutura de classes e mtodos do sistema so apresentadas nas Figuras 9 e 10. A principal classe exibida a AccessibilityManager, pois gerencia a aplicao dos perfis e as ferramentas de ativao rpida. A classe TheXlet, cuja declarao exibida na Listagem 1, implementa a interface Xlet da API Java TV e, portanto, gerencia o ciclo de vida da aplicao.
Listagem 1: Declarao da classe TheXlet public class TheXlet extends HContainer implements Xlet, Runnable, KeyListener, ResourceClient

13

A classe B4Player contm mtodos para manipular o player de vdeo. A classe Zoom controla o recurso de redimensionamento do vdeo para a Lente de Aumento. J as classes VRemoteControl e VKeyboard, que respectivamente implementam o Controle Remoto Virtual e o Teclado Virtual, estendem a classe abstrata VirtualInput, que define atributos e mtodos comuns para estas formas de entrada.

Figura 9: Diagrama de Classes (Parte 1)

Os principais mtodos da classe VKeyboard esto reproduzidos na Listagem 2: o construtor VKeyboard(HTextValue PoFocusedControl) recebe como parmetro o controle que receber os caracteres selecionados. O mtodo keyPressed disparado a cada pressionamento de tecla do controle remoto e tem como objetivo determinar qual o caractere associado ao boto selecionado pelo usurio, conforme exibido na Figura 5 do captulo 3.1, e reproduz-lo no campo em foco. Os mtodos paint e showVInput esto relacionados exibio da interface grfica do Teclado Virtual.

14

Figura 10: Diagrama de Classes (Parte 2)


Listagem 2: Principais mtodos da classe VKeyboard /*** Implementa um Teclado Virtual.*/

public class VKeyboard extends VirtualInput { /*** Construtor. selecionados. Recebe o objeto Objeto que est focado que { e receber receber os os caracteres caracteres

* @param PoFocusedControl selecionados.*/

focado

dever

public VKeyboard(HTextValue PoFocusedControl)

15

super(PoFocusedControl); theVKeyboard = this; }

/*** Interface: KeyListener. Verifica a tecla pressionada no controle remoto.*/ public void keyPressed(java.awt.event.KeyEvent KeyEvent) {

String sClassName = KeyEvent.getSource().getClass().getName(); int key = KeyEvent.getKeyCode(); if (key == HRcEvent.VK_ESCAPE) hideVInput(); else if ((key >= 48) && (key <= 57)) { ((HSinglelineEntry)FocusedControl).insertChar((char)key); ((HSinglelineEntry)FocusedControl).caretNextCharacter(); } else if (key == HRcEvent.VK_ENTER) { if (sClassName.contains("HSinglelineEntry")) { HSinglelineEntry oInput = (HSinglelineEntry)KeyEvent.getSource(); theVKeyboard = VKeyboard.getInstance(); theVKeyboard.setFocusedControl(oInput); theVKeyboard.showVInput(); theVKeyboard.transferFocus(); theScene.repaint(); } else { VKey oButton = (VKey)KeyEvent.getSource(); String sName = oButton.getName(); // Armazena em buffer o caractere CharBuffer += oButton.getKeyValue(); if (FocusedControl != null) { if (oButton.getKeyValue() == HRcEvent.VK_LEFT) { ((HSinglelineEntry)FocusedControl).caretPreviousCharacter(); } else if (oButton.getKeyValue() == HRcEvent.VK_RIGHT) { ((HSinglelineEntry)FocusedControl).caretNextCharacter(); } else if (oButton.getKeyValue() == HRcEvent.VK_ENTER) { hideVInput(); } else if (oButton.getKeyValue() == HRcEvent.VK_DELETE) { ((HSinglelineEntry)FocusedControl).deleteNextChar(); } else if (oButton.getKeyValue() == HRcEvent.VK_BACK_SPACE) { ((HSinglelineEntry)FocusedControl).deletePreviousChar(); } else { // Exit

// Caracteres alfanumricos e smbolos ((HSinglelineEntry)FocusedControl).insertChar(oButton.getCharValue()); ((HSinglelineEntry)FocusedControl).caretNextCharacter(); }

16

/*(...)*/ }

/*** Cria um background translcido para o teclado.*/ public void paint(Graphics g) {

g.setColor(VInputBgColor!=null?VInputBgColor:new DVBColor(255, 255, 253, 70)); g.fillRect(0, 0, getWidth(), getHeight()); super.paint(g); }

/*** Exibe o teclado, criando as teclas e associando os seus valores.*/ public void showVInput() showEndEditTip(); HSinglelineEntry oInput = (HSinglelineEntry)FocusedControl; oInput.setEditMode(true); CharBuffer = ""; // Limpa o buffer de caracteres {

// Cria todas as teclas do intervalo de chr 40 a 93 if (VKeys == null) VKeys = new ArrayList(); int iTop = 0;

int iLeft = 20; VKey mKeyRows[][] = new VKey[4][18]; // Cria uma matriz de 4 linhas x 18 colunas. int i = 40; for (int r=0; r<3; r++) for (int c=0; c<18; c++) if (i<94) { iTop = r * 42; // 42 = espao total entre um boto e outro // Linhas // Colunas // KeyCodes 40 -> 93

iLeft = (c * 42) + 20; mKeyRows[r][c] = new VKey(Character.toString((char)i), i, this, iLeft, iTop, 40); // Adiciona matriz para controle de foco this.VKeys.add(mKeyRows[r][c]); i++; } else break; // Aborta o loop // Adiciona lista do teclado

// Cria teclas especiais na ltima linha iLeft = 20; iTop += 42; ", HRcEvent.VK_SPACE, this, iLeft, iTop, 82);

mKeyRows[3][0] = new VKey(" this.VKeys.add(mKeyRows[3][0]); iLeft += 84;

mKeyRows[3][1] = new VKey("<=", HRcEvent.VK_LEFT, this, iLeft, iTop, 82); this.VKeys.add(mKeyRows[3][1]); iLeft += 84; mKeyRows[3][2] = new VKey("=>", HRcEvent.VK_RIGHT, this, iLeft, iTop, 82); this.VKeys.add(mKeyRows[3][2]);

17

iLeft += 84; mKeyRows[3][3] = new VKey("ENTER", HRcEvent.VK_ENTER, this, iLeft, iTop, 124); this.VKeys.add(mKeyRows[3][3]); iLeft += 126; mKeyRows[3][4] = new VKey("BACK", HRcEvent.VK_BACK_SPACE, this, iLeft, iTop, 124); this.VKeys.add(mKeyRows[3][4]); iLeft += 126; mKeyRows[3][5] = new VKey("DEL", HRcEvent.VK_DELETE, this, iLeft, iTop, 82); this.VKeys.add(mKeyRows[3][5]); iLeft += 84; theScene.add(this); this.setVisible(true); // Controle de foco this.setFocus(); for (int r=0; r<4; r++) for (int c=0; c<18; c++) // Linhas // Colunas {

if (mKeyRows[r][c] != null)

// Calcula e efetua ajustes nos botes de navegao int iRup int iCup int iRdown int iCdown int iRleft int iCleft = r==0?3:r-1; = r==0?0:c; = r==3?0:r+1; = (r==2 && c>5)?0:c; = r; = c==0?(r==3?5:17):c-1;

int iRright = r; int iCright = c==17?0:(r==3 && c==5?0:c+1); // Determina os controles de acordo com as coordenadas da matriz VKey kUp VKey kDown VKey kLeft = mKeyRows[iRup][iCup]; = mKeyRows[iRdown][iCdown]; = mKeyRows[iRleft][iCleft];

VKey kRight = mKeyRows[iRright][iCright]; // Atribui a navegao mKeyRows[r][c].setFocusTraversal( kUp==null?null:kUp, kDown==null?null:kDown, kLeft==null?null:kLeft, kRight==null?null:kRight); mKeyRows[r][c].setMove(HRcEvent.VK_RIGHT, kRight); System.out.println("setFocusTraversal: " + r + "x" + c + " " + iRup + "x" + iCup + kUp.getTextContent(HState.NORMAL_STATE) + " " + iRdown + "x" + iCdown + kDown.getTextContent(HState.NORMAL_STATE) + " " + iRleft + "x" + iCleft + kLeft.getTextContent(HState.NORMAL_STATE) + " " +

18

iRright + "x" + iCright + kRight.getTextContent(HState.NORMAL_STATE)); } } // for }

Outra classe importante a AccessibilityProfile, responsvel pela persistncia dos perfis em um arquivo XML. As classes MainMenu e ProfileMenu estendem a classe abstrata Menu e exibem os menus do sistema. Pode-se acompanhar na Figura 11 o Diagrama de Seqencia para exibio do menu principal, assim como nas listagens 3 e 4 o detalhamento dos mtodos ilustrados no diagrama.

Figura 11: Diagrama de Seqncia - Exibio do menu principal MainMenu.showMenu()

Listagem 3: Classe TheXlet /*** Carrega os recursos da aplicao. */ private void getResources() {

HSceneFactory oFactory = HSceneFactory.getInstance(); // Cria um HSceneTemplate em tela cheia HSceneTemplate hst = new HSceneTemplate(); hst.setPreference( HSceneTemplate.SCENE_SCREEN_DIMENSION,

19

new org.havi.ui.HScreenDimension(1,1), HSceneTemplate.REQUIRED); hst.setPreference( HSceneTemplate.SCENE_SCREEN_LOCATION, new org.havi.ui.HScreenPoint(0,0), HSceneTemplate.REQUIRED); theScene = oFactory.getBestScene(hst); // Carrega imagens MediaTracker tracker = new MediaTracker(this); // Carrega imagem do icone de interatividade

// Tamanho

// Posio

imgITV = Toolkit.getDefaultToolkit().getImage("itv.gif"); // Carrega a imagem de fundo do Controle Remoto Virtual imgVRC = Toolkit.getDefaultToolkit().getImage("remote-control.gif"); icoITV = new HStaticIcon(imgITV, theScene.getWidth() - 100, 20, 48, 48); icoVRC = new HStaticIcon(imgVRC, 0, 0, 162, 500); tracker.waitForAll(); // Define o tamanho do Xlet para ser igual ao tamanho da cena Rectangle rect = theScene.getBounds(); setBounds(rect); theScene.addKeyListener(this); // O prprio Xlet o listener }

/*** Remove todos os elementos da cena e exibe o icone de interatividade.*/ public void resetScene() {

theScene.setVisible(false); // Oculta theScene.removeAll(); activeMenu = null; // Adiciona o icone de interatividade (criado previamente, e nunca destrudo) theScene.add(icoITV); theScene.setVisible(true); theScene.requestFocus(); } // Exibe a cena // Foca a cena // Remove todos os objetos da cena

/*** Interface: KeyListener. Verifica a tecla pressionada no controle remoto. * Exibe o pressionada.*/ menu principal se alguma tecla de interatividade { ou Enter/OK for

public void keyPressed(java.awt.event.KeyEvent KeyEvent) int key = KeyEvent.getKeyCode(); if ((key == HRcEvent.VK_ENTER) || ((key >= HRcEvent.VK_COLORED_KEY_0) && (key <= HRcEvent.VK_COLORED_KEY_4))) MainMenu mainMenu = new MainMenu(null); mainMenu.showMenu(); } {

20

else if (key == HRcEvent.VK_ESCAPE) resetScene(); } // Limpa a cena

Listagem 4: Classe Menu /*** Exibe os botes do menu, baseado no contedo do ArrayList alItems.*/ {

public void showMenu()

theScene.setVisible(false); theXlet.setActiveMenu(this); int i = 0; showMenuTitle(); int x = 50; // Posio do primeiro boto // Cria o vetor de botes do tamanho dos itens previamente especificados aButtons = new HTextButton[alItems.size()]; Iterator oIt = alItems.iterator(); MenuItem oItem = (MenuItem)oIt.next(); while (oItem != null) { // Define este menu como ativo

aButtons[i] = new HTextButton(oItem.Caption, 10, x, 400, 35, new Font("Tiresias", 1, 36), Color.white, oItem.MenuName sempre vermelho == "itmVoltar"?Color.red:Color.blue, // Boto voltar

new HDefaultTextLayoutManager()); // Cria o boto aButtons[i].addKeyListener(this); aButtons[i].addFocusListener(this); aButtons[i].setName(oItem.MenuName); this.add(aButtons[i]); if (oIt.hasNext()) oItem = (MenuItem)oIt.next(); else oItem = null; x +=40; // Espao para o incio do prximo boto i++; } theScene.add(this); this.setVisible(true); this.repaint(); theScene.setVisible(true); // Atribui os controles de foco (semelhante a TabOrder) if (aButtons[0] != null) aButtons[0].requestFocus(); for (i=0; i<aButtons.length; i++) { { // Adiciona o menu cena // Importante: nome do boto!

int iPrev = i==0?aButtons.length-1:i-1; int iNext = i==aButtons.length-1?0:i+1;

21

aButtons[i].setFocusTraversal(aButtons[iPrev], aButtons[iNext], null, null); } } }

Por sua vez, a classe ProfileConfig implementa um formulrio para configurao dos Perfis de Acessibilidade utilizando a classe B4CheckBox. Por fim, as classes MenuItem e VKey contm os atributos necessrios para os itens de menu e as teclas virtuais, respectivamente. A listagem 5 prov um exemplo de utilizao prtica do Teclado Virtual, onde criado um campo de entrada de texto chamado oInput01 e associado ao seu evento keyListener uma instncia da classe VKeyboard. Essa associao responsvel por tratar a seleo dos caracteres e por sua vez a exibio no campo de texto.
Listagem 5: Exemplo de utilizao do Teclado Virtual em um formulrio /*** Cria os objetos necessrios e limpa a cena. */ public void showForm() {

this.theXlet = TheXlet.getInstance(); this.theScene = theXlet.getScene(); theScene.setVisible(false); theScene.removeAll(); // Garante que no ficou nenhum "residuo" na cena Zoom.getInstance().setZoom(1); // Zoom 50% /* (...) */ // Prepara o teclado virtual oVKeyboard = VKeyboard.getInstance(); oVKeyboard.setVInputBgColor(Color.orange); oVKeyboard.showEditTip(); // Cria os controles HStaticText lbl01 = new HStaticText("Nome:", 420, 70, 300, 25, new Font("Tiresias", 1, 20), Color.black, Color.orange, new HDefaultTextLayoutManager()); lbl01.setHorizontalAlignment(HVisible.HALIGN_LEFT); oInput01 = new HSinglelineEntry("", 420, 100, 300, 25, 20, new Font("Tiresias", 1, 20), Color.black); oInput01.setBackgroundMode(HVisible.BACKGROUND_FILL); oInput01.setBackground(Color.white); oInput01.setHorizontalAlignment(HVisible.HALIGN_LEFT); oInput01.setBordersEnabled(true); oInput01.addKeyListener(oVKeyboard); // Importante: o que determina se o teclado virtual ser exibido

22

oInput01.addKeyListener(this); oInput01.addFocusListener(this); /* (...) */ // Adiciona ao container this.add(lbl01); this.add(oInput01); theScene.add(this); this.setVisible(true); theScene.setVisible(true); oInput01.requestFocus(); por consequencia /* (...) */ } // Dispara o evento de foco e exibe o teclado virtual // Adiciona o form cena

Concluses

Podemos concluir que os objetivos deste trabalho, que eram difundir a utilizao da linguagem Java no ambiente da TV digital para a comunidade de desenvolvedores e disponibilizar uma base de ferramentas para maior incluso social de portadores de necessidades especiais, foram alcanados. Os principais resultados foram prottipos de ferramentas de acessibilidade configurveis atravs de perfis, que podem ser utilizadas para beneficiar uma parcela da populao que estaria excluda da TV digital sem estes auxlios ou de televisores e controles remotos especiais. As experincias realizadas durante este trabalho relataram que o emulador XletView fornece funcionalidades bsicas para o teste de Xlets, mas para um completo suporte aos recursos requeridos pelas ferramentas propostas seria necessrio um set-topbox ou um emulador com suporte a esses recursos. Foi utilizado este emulador por ser o mais popular e recomendado pelos desenvolvedores de Xlets, alm de ser open source e gratuito. Como no foram realizados testes em ambientes reais at o momento de produo deste trabalho, no se sabe se as limitaes relatadas aqui se aplicam a um settop-box preparado para o SBTVD. Espera-se em trabalhos futuros obter a resoluo dos problemas encontrados atravs da implementao e teste das ferramentas em ambientes reais, para que em decorrncia seja possvel apresent-las a portadores de necessidades especiais, coletar os resultados dos testes e aperfeio-las, visando a sua efetiva adoo pelos desenvolvedores de aplicaes. A comunidade interessada no desenvolvimento de aplicaes para TV digital aguarda o lanamento do Ginga-J e ferramentas para testar as aplicaes desenvolvidas, possibilitando assim o desenvolvimento de aplicaes utilizando a linguagem Java, amplamente utilizada no mercado. H muita expectativa sobre o resultado do trabalho resultante do memorando assinado entre o Frum SBTVD e a SUN, que permitir o desenvolvimento e distribuio do middleware e aplicaes sem a necessidade de pagamento de licenas. Como extenses deste trabalho poderiam ser desenvolvidas ferramentas de reconhecimento de comandos de voz e leitura de menus e demais textos exibidos na tela, com o objetivo de possibilitar aos portadores de necessidades especiais o acesso aos recursos da TV digital. Tambm pode ser implementado um algoritmo de predio de palavras baseado em um dicionrio para o Teclado Virtual. 23

Foi constatado durante o perodo de produo deste trabalho que h um grande interesse da populao em geral nos recursos disponibilizados pela TV digital, mas o objetivo da incluso social proposto inicialmente no projeto do SBTVD est distante de ser alcanado. Isto se d em parte devido ao alto custo dos aparelhos e a falta de interatividade, pois os receptores disponibilizados at o momento so terminais Zapper (TONIETO, 2006), e, portanto, no possuem o middleware Ginga. Acredita-se que iniciativas futuras viabilizem o projeto, como a adoo de bibliotecas de desenvolvimento livres de licenas, incentivos fiscais aos fabricantes e a disponibilizao de atrativos como interatividade e mobilidade, o que resultar na aceitao pela populao e produo em larga escala dos aparelhos receptores.

Referncias Bibliogrficas

BRASIL. Lei n. 5296, de 2 de dezembro de 2004. Regula prioridade de atendimento e acessibilidade. In: SENADO FEDERAL. Legislao Republicana Brasileira. Braslia, 2004. Disponvel em: <http://www6.senado.gov.br/legislacao/ListaTextoIntegral.action?id=227619>. Acesso em: out. 2007. FERNANDES, Jorge; LEMOS, Guido; SILVEIRA, Gledson. Introduo televiso digital interativa: arquitetura, protocolos, padres e prticas. In: CONGRESSO DA SOCIEDADE BRASILEIRA DE COMPUTAO, 24., 2004, Salvador. Disponvel em: <http://www.cic.unb.br/docentes/jhcf/MyBooks/itvdi/texto/itvdi.pdf>. Acesso em: mai. 2006. FREED, Ken. Desenvolvimento de aplicaes para TV Digital Interativa. Disponvel em: <http://www.media-visions.com/itv-newbies.html>. Acesso em: ago. 2006. GINGA. Portal do Software Pblico Ginga. Disponvel em <http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/>. Acesso em: nov. 2007. MC, Ministrio das Comunicaes. Sistema Brasileiro de TV Digital. Disponvel em: <http://sbtvd.cpqd.com.br>. Acesso em: ago. 2007. MONTEZ, Carlos; BECKER, Valdecir. TV Digital Interativa: Conceitos, Desafios e Perspectivas para o Brasil. Florianpolis: Ed. UFSC, 2006, 2 ed. 200 p. MORENO, Marcio F. Um Middleware Declarativo para Sistemas de TV Digital Interativa. Rio de Janeiro, 2006. Dissertao de Mestrado - Departamento de Informtica, Pontifcia Universidade Catlica do Rio de Janeiro. MORRIS, Steven; SMITH-CHAIGNEAU, Anthony. Interactive TV Standards. Burlington: Ed. Focal Press, 2005. 585 p. NBR15290. Acessibilidade em comunicao na televiso. Disponvel em: <http://www.mj.gov.br/sedh/ct/corde/dpdh/corde/ABNT/NBR15290.pdf>. Acesso em: out. 2007. NIC. Comit Gestor da Internet Ncleo de Informao e Coordenao. Disponvel em <http://www.nic.br>. Acesso em nov. 2007. SCHWALB, Edward M.. iTV Handbook: Technologies and Standards. New Jersey: 24

Ed. Prentice Hall, 2003. 752 p. SET. Sociedade Brasileira de Engenharia de Televiso e Telecomunicaes. Disponvel em: <http://www.set.com.br/tecnologia.htm>. Acesso em: ago. 2007. SUN MICROSISTEMS. Especificao da API Java TV. Disponvel em: <http://java.sun.com/products/javatv>. Acesso em: ago. 2007. TONIETO, Mrcia. Sistema Brasileiro de TV Digital - SBTVD - Uma anlise poltica e tecnolgica na incluso social. Fortaleza, 2006. Dissertao de Mestrado Centro de Cincias e Tecnologia, Universidade Estadual do Cear.

25

Вам также может понравиться