SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
1º Simpósio Internacional d Televisão Digital (SIMTVD) – 18 a 20 de novem
                           de                                            mbro, Bauru/SP




Uso do RSS como Ferramenta Educacional na TV Digital

                                                        PINTO, Rafael Peres Rosa
                                                   MENDES, Carlos Otávio Schocair
                                                      LEÃO, Jorge Lopes de Souza
                                                  PEDROZA, Aloysio de Castro Pinto



RESUMO

Este artigo apresenta uma ferramenta de autoria, especialmente desenvolvida
para o Sistema Brasileiro de TV Digital (SBTVD) para leitura de RSS,
utilizando-se as linguagens NCL e Lua, sendo modelada pelo diagrama de
             se
estados. O RSS (Really Si
                     Really Simple Syndication) é conjunto de tags (marcas) de
formato definido pela norma que utiliza a linguagem de marcação XML
(eXtensible Markup Language normalmente indicado nos sítios com o símbolo
                      Language),
.     . A finalidade do RSS é a possibilidade de receber atualizações de sítios
                                               de
com informações resumidas, sem que o mesmo seja diretamente consultado.
Sítios modificam seu conteúdo com certa regularidade, possuem feeds que
permitem o acesso a conteúdos específicos e resumidos. O usuário pode
visualizar diretamente através do browser ou softwares conhecidos como
           r
agregadores ou leitores que armazenam previamente os conteúdos dos RSS,
escolhidos pelo usuário para futura consulta. O RSS pode ser utilizado como
ferramenta educacional, acessando conteú
                                      conteúdos de forma distribuída na Internet
sem, contudo, ver todo o conteúdo no sítio. Durante um documentário ou aula,
o aluno pode apreciar mais informações, constante no RSS de um determinado
sítio correlato ao assunto que está sendo visto. E mais, pode acompanhar as
novidades sobre o assunto estudado, toda vez que houver alteração em tempo
real do conteúdo no feed pesquisado. O RSS mostra-se um recurso  se
interessante para leitura prévia de objetos de aprendizagem, contidos em sítios
que posteriormente podem ser lidos na sua íntegra, caso haja interesse em
                                  lidos
complementar a informação. A ferramenta é carregada inicialmente no STB
(Set-Top Box), por radiodifusão ou pela porta USB. O usuário escolhe a url
                 ),
contendo o RSS, a ferramenta acessa via canal de retorno, o seu cont   conteúdo
apresentado na forma de ticker (notícias contínuas deslizantes) na parte
inferior, juntamente com o vídeo principal na tela da TV. O usuário poderá
escolher ainda entre ver somente a mensagem inicial (    (ticker) ou a descrição
                                                                )
completa do RSS, enquanto assiste ao vídeo principal. Neste caso o vídeo é
                               assiste
reduzido em seu tamanho para conter esta descrição na tela.

              :
PALAVRAS-CHAVE:            RSS.      Ferramenta       Educacional.       Objetos      de
Aprendizagem. EaD. SBTVD. NCL/Lua.




                                                                                     742
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       1. Introdução

       Este trabalho apresenta uma ferramenta que pode ser utilizada no
aprendizado mediado por TV no SBTVD (Sistema Brasileiro de TV Digital)
desenvolvida a partir das especificações do GINGA, especialmente a parte
GINGA-NCL (ABNT NBR 15606, 2008).

       O GINGA é um middleware desenvolvido para o SBTVD, padrão
adotado pelo governo brasileiro para aplicações interativas.

       A ferramenta pode ser utilizada como coadjuvante durante as aulas na
TV como recurso adicional de Educação a Distância (EaD) ao conteúdo
apresentado pelo palestrante/professor (MENDES et. al., 2008 e 2009).

       O aluno/telespectador poderá acessar via canal de retorno ou de
interatividade, conteúdos simplificados sobre o assunto correlato, através do
RSS (2009) ou até mesmo obter a descrição contida no RSS sem, contudo,
acessar todo o conteúdo da página do sítio em questão.




       2. Apresentação

       O trabalho está dividido em capítulos, o primeiro contém uma breve
introdução do assunto. E neste capítulo 2 é apresentada a estrutura dos
capítulos.

       No capítulo 3 a fundamentação teórica do RSS.

       No capítulo 4 apresenta conteúdo sobre Objetos de Aprendizagem
demonstrando a importância das ferramentas de aprendizado na EaD.

       No capítulo 5 a metodologia empregada com a visão geral do
funcionamento da ferramenta, incluindo a modelagem da ferramenta utilizando
diagrama de estados.


                                                                                       743
1º Simpósio Internacional d Televisão Digital (SIMTVD) – 18 a 20 de novem
                            de                                            mbro, Bauru/SP




       No capítulo 6 a demonstração do sistema apresentando as principais
linhas de códigos usadas na aplicação e telas do sistema de acordo com o
diagrama de estados do capítulo 5.

       No capítulo 7 apresenta as principais dificuldades e soluções
encontradas durante o desenvolvimento da ferramenta.
      radas

       No capítulo 8 a conclusão e por último no capítulo 9 as sugestões para
trabalhos futuros.




       3. RSS

       O RSS possui alguns significados conforme a versão. Neste artigo será
considerada a versão RSS 2.0, portanto, seu significado neste caso é Really
Simple Syndication. Seu principal uso é na divulgação de modificação de
                  .
informações contidas em sítios, muitas vezes usados em notícias e blogs.

       A leitura do feed que representa o caminho para o conteúdo do RSS,
indicado pelo símbolo
           lo                , pode ser feita diretamente através de browsers
(Internet Explorer, Firefox, Opera, dentre outros) ou leitores específicos de RSS
denominados agregadores como, por exemplo: Google Reader, Bloglines,
FeedReader que armazenam previamente o conteúdo para posterior consulta.
                                       conteúdo

       O RSS utiliza a linguagem XML (eXtensible Markup Language ) para
                                     (eXtensible
construção do conteúdo, que pode ser disponibilizado através de canais de
notícias (RSS, 2009) (XML, 2009).

       O canal contém um conjunto de itens referentes à me
                                                        mesma área de
conhecimento, portanto, um sítio pode conter um ou mais canais dependendo
da área de conhecimento.

       A produção de mais canais é comum em sítios de notícias como por
exemplo: portais, jornais e revistas eletrônicas.

                                                                                      744
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       Na figura 1 é observada a forma de construção do RSS onde a linha 1
representa o cabeçalho indicando a versão do RSS 2.0.




Figura 1 – código exemplo de RSS




       Na linha 2 da mesma figura é observado o canal que representa um
conjunto de notícias de uma determinada área de conhecimento, exemplo de
canais de notícias: últimas, país, esporte, tecnologia. Linhas 3 e 4 representam
respectivamente o título da página e o endereço principal do sítio. A tag <item>
na linha 6 é o título da notícia que pode ser obtida na íntegra no sítio, caso haja
interesse do usuário através da linha 7.

       É possível ainda obter uma breve descrição do assunto (linhas 8 a 13),
sem a necessidade de acessar a o conteúdo inteiro no sítio. Na linha 14 existe
a indicação da data de publicação da informação. E por último nas linhas de 15
a 17 representam as tags de fechamento.

       Neste exemplo foram supridas algumas tags que não eram específicas
do RSS e também outras notícias que poderiam existir em outros itens (<item>)
e/ou outros canais (<channel>).



                                                                                       745
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




         4. Objeto de Aprendizagem

         O uso de Objeto de Aprendizagem (OA) pode ser usado na construção
de cursos mediados por computador e pode ser entendido como um
componente educacional como: software, texto, figura, áudio e vídeo (WILEY,
2000).

         Com a tecnologia da TV Digital é possível o uso de recursos interativos
nas teleaulas.

         Este artigo propõe o uso da ferramenta de autoria interativa como objeto
de aprendizagem no auxílio a teleaulas ou vídeos, onde o emissor de conteúdo
pode enviar juntamente com o vídeo principal esta aplicação, permitindo ao
usuário/aluno escolher através de botões interativos localizadas na tela do lado
esquerdo, ler o conteúdo do RSS.

         A vantagem desta técnica, como o feed é dinâmico, o telespectador
obterá conteúdos online dessas informações inicialmente no canto inferior da
tela juntamente com a teleaula ou vídeo principal.

         Este sistema permite ainda ao usuário obter um pequeno resumo
quando disponível do título do feed apresentado, sem a necessidade de
acessar o site para obter a informação completa. Ficando a critério do usuário,
um acesso direto ao site para obter mais informações.

         Neste trabalho procurou-se fornecer ao usuário de maior autonomia na
escolha do feed que deseja obter informações.

         Como alternativa extra para a transmissão via radiodifusão da
ferramenta é possível a alteração do código, onde o usuário escolheria apenas
se desejasse ver o feed e/ou seu conteúdo resumido (opção detalhes)
simultaneamente ao vídeo ou aula principal. O feed para o RSS seria
previamente escolhido pelo emissor de conteúdo e transmitido juntamente com
a aula.


                                                                                      746
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




         5. Metodologia e Modelagem do Sistema

         Neste capítulo são descritas as metodologias utilizadas na pesquisa,
bem como o diagrama de estados que compõe a ferramenta.

         A aplicação foi desenvolvida permitindo o aluno acessá-la como
complemento da aula, utilizando-se do RSS. O feed pode ser inserido via
pendrive em arquivo .txt (modo texto), digitado diretamente através do teclado
comum inserido no STB ou mesmo via teclado virtual apresentado na tela,
neste caso, sendo digitado pelo controle remoto do equipamento.

         Uma vez determinados os objetivos e o funcionamento da ferramenta, o
próximo passo foi a definição do middleware e posteriormente a linguagem
para concepção do protótipo.

         O midlleware é componente de software intermediário entre o
hardware/sistema operacional e a aplicação para a TV Digital. Devido a este
componente, uma mesma aplicação de TV pode ser executada em qualquer
equipamento compatível com o padrão do middleware.

         Neste ponto optou-se pelo SBTVD (Sistema Brasileiro de TV Digital) que
utiliza o middleware GINGA.

         A parte NCL do middleware GINGA no momento da pesquisa já estava
normatizada, sendo desenvolvida e implementada pelo grupo de pesquisa
Telemídia da      PUC-Rio, por este motivo foi adotada como padrão nesta
pesquisa (PUC-RIO, 2009).

         O acesso ao canal de retorno, apresentação dos textos e funções foram
desenvolvidos na linguagem Lua. Esta linguagem é coadjuvante a linguagem
NCL (Nested Context Language) que é a linguagem principal que associa e
apresenta as mídias desenvolvidas em LUA (IERUSALIMSCHY, 2006) (NCL,
2009).




                                                                                      747
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




      Durante a pesquisa foram testados dois middlewares o Set-top Box
Virtual Ginga-NCL desenvolvido pela PUC-Rio e o Middleware da RCASOFT
(PUC-RIO, 2009) (RCASOFT, 2009).

      O Set-top Box Virtual apresentou problemas com relação à função
LuaTCP que até a versão v.0.10.1 ainda não tinha sido possível obter um
funcionando satisfatório de acordo com estabelecido na norma GINGA (ABNT
NBR 15606, 2008). Para contornar este problema foi instalado a classe
LuaSocket, estendendo o código do middleware original da PUC-Rio, mesmo
entendendo que esta não faz parte da norma atual.

      A mudança desta classe para o LuaTCP no futuro não causará
problemas devido a modularidade que a ferramenta RSS foi desenvolvida.

      A segunda opção seria a utilização do middleware da RCASOFT que
possui compatibilidade até o momento somente com o STB (Set-Top Box) da
Proview modelo XPS-1000. Este midleware é compatível com parte da norma
GINGA, sendo implementada somente a parte NCL/LUA (RCASOFT, 2009).

      O middleware da RCASOFT foi descartado pela pesquisa devido a não
suportar   vídeos      via   USB,   com     isso,    a   representação      de    vídeos
simultaneamente com RSS inseridos na aplicação para demonstração da
ferramenta em funcionamento, ficaria prejudicada.

      Neste equipamento, os vídeos só podem ser vistos, se apresentados por
radiodifusão, utilizando-se do codec via hardware instalado no equipamento
STB (Set-top Box) da Proview.

      Vale ressaltar que testes foram realizados com este equipamento
Proview durante a pesquisa, utilizando a classe LuaTCP no lugar do LuaSocket
no canal de retorno, apresentado funcionamento satisfatório em rede local, mas
utilizando a internet e, em alguns momentos, não foi possível obter o conteúdo
completo solicitado.



                                                                                      748
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




      Para melhor entendimento das funções e ações que deveriam ser
desenvolvidas pela ferramenta foi utilizado o diagrama de estados (figura 2)
com a visão geral das funções, módulos e interações das mídias na aplicação
que serão detalhadas as partes essenciais no próximo capítulo.

      O vídeo utilizado na demonstração do funcionamento da ferramenta foi
obtido da aula de Língua Portuguesa do Telecurso 2000, programa educativo
desenvolvido pela Fundação Roberto Marinho (2009).

      Após o sucesso na leitura do pendrive pelo STB, o usuário deve
escolher a partir de três botões RSS (vermelho), X que representa o cancelar
(verde) e Detalhes (amarelo).

      O botão “RSS” exibe o conteúdo do título do RSS no canto inferior na
forma de rolagem deslizante (ticker), reduzindo o vídeo para 80% de seu
tamanho original.

      O botão “Detalhes” exibe a descrição (na lateral direita) quando
disponível do RSS, reduzindo o vídeo em 50% de seu tamanho original e, por
último, o botão “X” cancela a operação Detalhes ou RSS, retornando ao início
apresentando o botão “INFO”.




                                                                                      749
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 2 – Diagrama de estados mostrando uma visão geral da aplicação




                                                                                       750
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




        6. Funcionamento da Ferramenta

        Neste capítulo serão descritos em seções os principais códigos
representados através de figuras, sempre com linhas numeradas para facilitar o
entendimento da ferramenta, segmentados, seguindo o diagrama de estados
apresentado no capítulo 5.

        Juntamente com a discussão das linhas de códigos do módulo em
questão é apresentada a tela demonstrativa correspondente, quando
pertinente.




        6.1 Início da aplicação

        A primeira mídia a ser executada na aplicação é o script “init.lua”, que
apenas escreve no log indicando o início da aplicação e serve como porta de
entrada para iniciar outras duas mídias com o evento “onBeginStartN”, que são
o vídeo e o botão de interatividade, como mostra a figura 3.




Figura 3 – Elo que inicia o vídeo e o botão de interatividade.




        A partir deste momento o vídeo passa a ser exibido em tela cheia e o
botão de interatividade é apresentado no topo esquerdo da tela, indicando a
opção de interatividade, como mostra a figura 4.




                                                                                       751
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 4 – Aplicação com o botão de interatividade o vídeo em execução.




       6.2 Seleção do botão INFO e as formas de apresentação do RSS




       Quando o usuário pressiona a tecla “INFO”, o botão de interatividade é
escondido e outros dois botões são apresentados, o botão de definição de
“RSS” e o botão “X” de cancelamento como demonstra a figura 5.




Figura 5 – Opções de definição de RSS e cancelamento em exibição.




                                                                                       752
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




        Os eventos dos botões de definição de “RSS” (botão verde do controle
remoto) e o de cancelamento, representado pelo botão “X” (botão vermelho do
controle remoto) sempre levam em consideração o valor do atributo “estagio”
da mídia “nodeSettings”, que é do tipo “application/x-ginga-settings”.

        O atributo “estagio” possui o valor inicial “1”. É utilizado para diferenciar
eventos associados à mesma mídia que devem atuar de formas diferentes de
acordo com o estágio em que a aplicação se encontra, podendo assumir
valores conforme tabela 1.

                     Valor      Significado do atributo “estagio”
                     1          Estágio      inicial,   nenhum           RSS
                                definido
                     2          RSS definido e em apresentação
                     3          Alterando o RSS em exibição
                     4          Exibindo o detalhe da notícia atual

Tabela 1 – Significado dos valores possíveis para o atributo “estagio”




        6.3 Seleção do botão verde (RSS)

        Com o estágio da aplicação ainda definido como “1”, quando o usuário
pressiona a tecla “VERDE”, o vídeo é redimensionado a 80% da altura
referente ao valor inicial. Nos outros 20% disponíveis na parte inferior da tela
são apresentadas duas imagens com os seguintes itens do menu: “Recuperar
a URL do RSS a partir do USB” e “Definir a URL do RSS manualmente”.

        A figura 6 mostra o código representativo e na figura 7 a respectiva tela.




                                                                                       753
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 6 – Elo que exibe as opções de entrada de dados.




Figura 7 – Aplicação com as opções de entrada e exibição.

       A segunda opção, ainda está em desenvolvimento, o objetivo é
apresentar um campo de texto em que o usuário possa informar a URL
(Universal Resource Locator) do feed para o RSS, utilizando o teclado virtual
através do controle remoto ou teclado real para digitação do texto, sem uso do
pendrive na porta USB.


                                                                                       754
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       6.4 Escolha da opção “Recuperar a URL do RSS a partir do USB”

       Após selecionar opção de definição de URL via USB, a mídia
“instrucoesMenuUSB” do tipo HTML carrega uma página HTML contendo as
informações necessárias para definir a URL via USB, como, o nome e formato
do arquivo que será carregado, como mostram a codificação na figuras 8 e a
sua respectiva tela na figura 9.




Figura 8 – Elo que exibe as instruções de entrada via USB.




Figura 9 – Aplicação com as instruções de entrada em execução.




                                                                                       755
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       6.5 Montagem e tratamento da informação do dispositivo USB

       Após o usuário selecionar a tecla “ENTER”, a mídia “controladorUSB” do
tipo Lua é carregada. Este script lua é responsável por montar o dispositivo,
caso necessário, recuperar a URL no arquivo especificado e armazenar esta
URL em um arquivo temporário no diretório da aplicação, utilizando o módulo
“conteudo” descrito na figura 10.




Figura 10 – Código Lua do controlador de USB.




       As linhas 5 e 7 são funções de montagem e de desmontagem do
dispositivo USB, utilizadas para simular uma montagem automática no
receptor.



                                                                                       756
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       Na linha 8 a URL do RSS é recuperada utilizando o módulo “conteudo”
que será descrito em detalhes na seção 6.8.

       Caso     o   processo      não    tenha    sido    bem     sucedido,     a   mídia
“instrucoesMenuUSBErro” do tipo HTML é iniciada, exibindo uma página HTML
indicando que houve um erro na recuperação da URL (figura 11) e novamente
apresentando as instruções ao usuário da figura 7.




Figura 11 – Aplicação informando que houve um erro ao recuperar a URL.




       6.6. Apresentação dos botões “RSS” e “Detalhes”

       Caso o processo tenha sido bem sucedido, o controlador USB exibe os
botões de definição de RSS e de detalhe de notícia, e também inicia o
controlador de rodapé, como mostra a codificação na figura 12 e tela na figura
17.




                                                                                       757
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 12 – Elo que inicia a exibição do RSS.




        O controlador de rodapé é uma mídia do tipo Lua, é o script que
recupera, processa e exibe o RSS no rodapé da tela. Todo esse
processamento foi dividido em quatro módulos Lua: rss, conteudo, texto e
stringUtil.




        6.7 Módulo “stringUtil”

        O primeiro módulo a ser descrito é o módulo “stringUtil”, definido no
arquivo “stringUtil.lua” ele é o módulo que disponibiliza funções de manipulação
de strings que não estão definidas no módulo “string”, como por exemplo a
remoção de espaços excedentes de uma string utilizando a função “trim()”.




        6.8 Módulo “conteúdo”

        O módulo “conteudo” é definido no arquivo “conteudo.lua”, este módulo
é o responsável por armazenar e recuperar o conteúdo do sistema de arquivos
local e também via protocolo HTTP. A função de recuperação HTTP utiliza o
módulo “Luasocket”, não especificado na norma oficial do Ginga, porém foi
utilizado devido a problemas com a classe “tcp” no middleware de referência,


                                                                                       758
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




caso a aplicação seja migrada para utilizar a classe “tcp”, o módulo “conteudo”
será responsável apenas por manusear conteúdo local.




Figura 13 – Código Lua do módulo “conteudo”.




       Na figura 13 a função “obterConteudoRemoto”, na linha 20, utiliza a API
do módulo “LuaSocket” para efetuar a comunicação HTTP pelo canal de
retorno.




       6.9 Módulo “rss”




                                                                                       759
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       O módulo “rss” é definido no arquivo “rss.lua”, este módulo é
responsável por receber uma string contendo as informações do RSS e
transformá-las para estruturas de domínio, na forma de tabelas aninhadas.

       O processamento do XML do módulo “rss” foi escrito a partir da função
baseada no parser de XML desenvolvido por Yutaka Ueno (2009). Este parser
transforma o XML em uma estrutura de tabelas aninhadas e dinâmicas.

       No desenvolvimento desta ferramenta foram realizados alguns ajustes,
estendendo o código original para permitir o uso de acordo com o padrão para
exibição desta mídia na tela da TV Digital (figura 14).




Figura 14 – Parte a função de processamento de XML.



                                                                                       760
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       Na figura 14 as linhas 1 e 2 foram removidas a definição de “CDATA” e,
nas linhas 11, 12 e 13 restaurados os escapamentos e retirados os excessos
de espaços do conteúdo.

       Após este processamento foram transferidas estas informações para
outras estruturas mais organizadas, selecionando apenas as informações
utilizadas na aplicação.




Figura 15 – Parte da função de criação das estruturas que armazenam o RSS.




       A função demonstrada na figura 15 recebe uma estrutura em forma de
tabela que contém informações de itens e canais.




                                                                                       761
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




         A estrutura final é descrita nas linhas 2, 3 e 4, uma tabela com
informações do RSS, aninhada a outras tabelas com informações dos canais e,
cada tabela de canal possui tabelas aninhadas com informações sobre os seus
itens.




         6.10 Módulo “texto”

         O módulo “texto” é definido no arquivo “texto.lua”, este módulo é
responsável por exibir um texto na aplicação utilizando a API canvas.

         Este módulo possui a função :

         “desenharListaTextosMoveis(listaTextos,funcaoRecuperaListaAtualizada
,funcaoInformandoItemAtual)” que percorre a lista de textos exibindo-os no
rodapé da aplicação por tempo indeterminado, isso é possível devido a criação
de uma função recursiva e assíncrona que é executada utilizando a classe
“event”. Esta função basicamente preenche toda a região do rodapé de preto e
desenha o texto em cor branca no canto direito da tela. Ao final da execução,
utiliza-se a função “timer()” da classe “event” para chamar a si mesma, após 60
milissegundos, na nova execução o texto será desenhado um pixel à esquerda,
criando assim o efeito de rolagem de texto.

         Essa função (figura 16) recebe como parâmetro duas outras funções:
“funcaoInformandoItemAtual” e “funcaoRecuperaListaAtualizada”.

         A primeira é executada quando um texto passa por toda a tela, a função
recursiva passa para o outro item da lista de textos e invoca esta função
recebida.    E   como     parâmetro     informa     o   texto,   como     por   exemplo:
“funcaoInformandoItemAtual('Texto Atual')”, funciona basicamente como um
callback para informar ouvintes sobre a atualização do texto, no caso
específico, esse ouvinte é o controlador de detalhe.




                                                                                       762
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       Já a função “funcaoRecuperaListaAtualizada()” é executada quando
todos os itens da lista já foram exibidos, assim esta função recupera uma nova
lista atualizada que será exibida logo em seguida.




Figura 16 – Parte da função recursiva que desenha o RSS no rodapé.

       A variável “ponteiro” da linha 36 (figura 16) faz referência para a função
“desenhaAssincrono”, fazendo assim um processo recursivo.

       Enquanto os títulos das notícias são apresentados no rodapé da
aplicação pelo controlador de rodapé, são exibidos os botões de definição de
RSS, cancelamento e detalhe, conforme figura 17.

       Neste ponto o atributo “estagio” da mídia “nodeSettings” é definido com
o valor “2”, que indica que um RSS foi definido.




                                                                                       763
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 17 – Aplicação em execução com o RSS sendo exibido.




       Ao selecionar o botão RSS será pedido um novo feed de acordo com o
explicado na seção 6.3.

       Caso seja escolhido o botão “X” ele retorna a tela com botão
interatividade “INFO” e redimensiona a tela para o tamanho normal retornando
como apresentado na seção 6.1.




       6.11 Apresentação do detalhe do conteúdo do RSS (tecla amarela)

       O botão “Detalhe”, quando selecionado pela tecla do controle remoto
“AMARELA”, dispara o evento “comandoEscreverDetalhe” do controlador de
detalhe. Este evento faz o controlador obter o template HTML de detalhe de um
arquivo HTML local, e encaixe as informações da notícia atual enviadas pelo
controlador de rodapé no documento, como mostra a figura 18.




                                                                                       764
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 18 – Elo que inicia a exibição do detalhe da notícia atual.




        Após este procedimento tem-se em memória um documento HTML,
formatando o título e a descrição da notícia atual.

        O próximo passo é armazenar este conteúdo no arquivo detalhe.html,
depois redimensionar a largura do vídeo para 50% e iniciar a execução da
mídia “detalheHTML”, tipo HTML que apontando para o arquivo criado,
apresenta os detalhes da notícia atual junto com o vídeo.




                                                                                       765
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 19 – Detalhe da notícia atual em exibição.




        Mesmo com as notícias mudando no rodapé da aplicação, a exibição do
detalhe se mantém até que o usuário pressione o botão “X” de cancelamento.

        As linhas 7 a 16 da figura 20 são os eventos que atualizam as variáveis
que armazenam as informações da notícia atual.

        Entre as linhas 18 e 36 representam o evento de criação do arquivo de
detalhe, o template HTML é recuperado na linha 21 e preenchido nas linhas 28
e 29.

        E das linhas 24 a 27 é feito o truncamento do detalhe da notícia, caso
este tenha mais de 450 caracteres.

        Finalmente na linha 33 é feito o armazenamento dos detalhes da notícia.




                                                                                       766
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




Figura 20 – Código Lua do controlador de detalhe.




       Com a seção 6.11 foram apresentados os principais códigos e as suas
respectivas telas da ferramenta.




       7. Problemas encontrados

       O primeiro problema como relatado inicialmente no capítulo 5 foi o
funcionamento da classe “LuaTCP” no middleware de referência. Para




                                                                                       767
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




remediar este problema foi utilizado o módulo “LuaSocket”, estendido da norma
Ginga.

         No caso do middleware RCASOFT versão 1.6.20, o funcionamento da
classe     LuaTCP    funcionou      parcialmente,     apresentado      dificuldade     na
recuperação completa do conteúdo em determinadas vezes pela internet,
recebendo apenas uma parte do conteúdo. Possivelmente devido a problemas
de tempo de resposta, pois testes efetuados com RSS em rede local este
middleware funcionou satisfatoriamente para todas as consultas.

         Como a ferramenta foi desenvolvida em forma modular, a modificação
da classe LuaSocket para LuaTCP seria realizada sem maiores problemas.

         Os conteúdos externos no formato UTF-8, aparentemente a linguagem
Lua contida no padrão GINGA não oferece suporte nativo a esses formatos,
portanto, os arquivos HTML tiveram suas codificações alteradas para ISO-
8859-1. O módulo “LuaSocket” não recuperou corretamente os caracteres
acentuados para casos em que o XML requerido esteja no padrão UTF-8
(2009) (ISO-8859-1, 2009).

         Outra dificuldade foi a não montagem automática do dispositivo USB no
middleware de referência (STB virtual da PUC-Rio). A solução foi utilizar código
de montagem e desmontagem do dispositivo de armazenagem USB (pendrive)
dentro da própria aplicação desenvolvida. Este problema não foi observado no
middleware da RCASOFT que monta automaticamente após a inserção do
pendrive.

         O último problema descoberto e ainda não solucionado na parte de
exibição de detalhe do RSS. Quando o conteúdo do arquivo da mídia HTML
apontado é modificado e a mídia parada e novamente iniciada; aparentemente
o navegador Links utilizado pelo middleware, não atualiza o conteúdo.
Provavelmente o Links, browser nativo na implementação do middleware, faz
cache, mesmo o HTML possuindo marcações “META” de expiração de cache.



                                                                                      768
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




       8. Conclusão




       Este artigo mostrou uma ferramenta educacional para leitura de RSS na
TV Digital implementando acesso via canal de retorno estendendo a norma
utilizando a classe LuaSocket.

       Foi estudada uma forma de obter o feed para buscar o RSS montado via
pendrive.

       Para o tratamento do XML proveniente da consulta ao RSS foi estendido
um parser, para apresentação deste conteúdo na TV concomitante ao vídeo
principal.

       Espera-se com este trabalho ter contribuído com esta ferramenta de
autoria que pode ser utilizada como objeto de aprendizagem e coadjuvante
durante as aulas em EaD.




       9. Trabalhos futuros




       Como próximos passos para o aprimoramento desta aplicação podem
ser destacados:

       Migrar a aplicação para utilizar a classe LuaTCP no lugar do LuaSocket
para acessar o canal de retorno.

       Desenvolver suporte a recuperação de conteúdo no formato UTF-8,
construindo um parser.




                                                                                       769
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




      Estudar melhor o mecanismo de cache de HTML do browser Links
procurando uma forma de eliminá-lo quando necessário.

      Desenvolver a opção de entrada de dados manual para a definição da
URL do RSS via teclado virtual e real.

      Desenvolver uma segunda versão da ferramenta para uso na
transmissão via radiodifusão de conteúdo de RSS com feed estabelecidos
previamente pelo emissor de conteúdo. Cabendo ao usuário apertar o botão
“INFO”, definindo se desejam ler o título do RSS e/ou seus detalhes. Para esta
modificação elimina-se o módulo “controlador de USB”.




Referências bibliográficas

ABNT NBR 15606. http://www.abnt.org.br/m3.asp?cod_pagina=1249. Última
alteração em 2008. Acesso em 16 de outubro de 2009.

FUNDAÇÃO ROBERTO MARINHO. Aula do Telecurso 2000 – Ensino
Fundamental                Português             Aula              38.
http://www.youtube.com/watch?v=ZgvPqXkTEJk. Acesso em 16 de outubro de
2009.

IERUSALIMSCHY, Roberto. Programing in Lua. 2ª ed., Rio de Janeiro:
Editora Lua.org, 2006, 308p.

ISO/IEC 8859-1. http://anubis.dkuug.dk/JTC1/SC2/WG3/docs/n411.pdf. Acesso
em 16 de outubro de 2009.

MENDES, C. O. S. et. al. A TV Digital e a EaD Discutindo Alternativas de
Ensino. In: 6º ETIC Encontro de Educação e Tecnologias de Informação e
Comunicação, 2008, Rio de Janeiro. Anais do 6º ETIC Encontro de Educação e
Tecnologias de Informação e Comunicação, 2008.

MENDES, C. O. S.; SUZUKI, J. T. F. Uso da TV Digital na Escola Pública
como Ferramenta de Aprendizado. 3º Congresso Nacional de Extensão
Universitária, Londrina, 2009.

NCL. http://ncl.org.br. Acesso em 16 de outubro de 2009.




                                                                                      770
1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP




PUC-RIO. Set-top Box Virtual Ginga-NCL – Versão v.0.10.1. Laboratório
Telemídia. http://www.ncl.org.br/ferramentas/fedora-fc7-ginga-i386.zip. Acesso
em 16 de outubro de 2009.

RCASOFT. http://www.rcasoft.com.br/. Acesso em 16 de outubro de 2009.

RSS. http://validator.w3.org/feed/docs/rss2.html. Acesso em 16 de outubro de
2009.

UENO, Y. Parser XML. http://lua-users.org/wiki/LuaXml. Acesso em 16 de
outubro de 2009.

UTF-8. http://en.wikipedia.org/wiki/UTF-8. Acesso em 16 de outubro de 2009.

XML. http://www.w3.org/XML/. Acesso em 16 de outubro de 2009.

WILEY, D. A., Connecting Learning Objects to Instructional Design
Theory: A Definition, A Metaphor, and A Taxonomy, The Instructional Use of
Learning              Objects.           Publicado        em          2000.
http://reusability.org/read/chapters/wiley.doc. Acesso em 16 de outubro de
2009.




                                                                                      771

Mais conteúdo relacionado

Semelhante a Uso do rss como ferramenta educacional na tv digital

Semelhante a Uso do rss como ferramenta educacional na tv digital (20)

RESUMO Uma Proposta de Arquitetura Interoperável integrando Web, TV Digital e...
RESUMO Uma Proposta de Arquitetura Interoperável integrando Web, TV Digital e...RESUMO Uma Proposta de Arquitetura Interoperável integrando Web, TV Digital e...
RESUMO Uma Proposta de Arquitetura Interoperável integrando Web, TV Digital e...
 
Guia da unidade_unidade_8-versao1.1
Guia da unidade_unidade_8-versao1.1Guia da unidade_unidade_8-versao1.1
Guia da unidade_unidade_8-versao1.1
 
Oficina 1 Confoa 2013 - Parte 3 - Interoperabilidade e repositórios - josé c...
Oficina 1  Confoa 2013 - Parte 3 - Interoperabilidade e repositórios - josé c...Oficina 1  Confoa 2013 - Parte 3 - Interoperabilidade e repositórios - josé c...
Oficina 1 Confoa 2013 - Parte 3 - Interoperabilidade e repositórios - josé c...
 
Revolução RSS Bibliotecas Apresentacao
Revolução RSS Bibliotecas ApresentacaoRevolução RSS Bibliotecas Apresentacao
Revolução RSS Bibliotecas Apresentacao
 
Bioestatistica usando R
Bioestatistica usando RBioestatistica usando R
Bioestatistica usando R
 
Assoso 02
Assoso 02Assoso 02
Assoso 02
 
XML, Webservice e RSS
XML, Webservice e RSSXML, Webservice e RSS
XML, Webservice e RSS
 
Relatório pedrocastro 2012_2013_v1
Relatório pedrocastro 2012_2013_v1Relatório pedrocastro 2012_2013_v1
Relatório pedrocastro 2012_2013_v1
 
part-social
part-socialpart-social
part-social
 
Assoso 02(1)
Assoso 02(1)Assoso 02(1)
Assoso 02(1)
 
Assoso 02
Assoso 02Assoso 02
Assoso 02
 
Feeds Conceitos
Feeds ConceitosFeeds Conceitos
Feeds Conceitos
 
O que feed rss atom
O que feed rss atomO que feed rss atom
O que feed rss atom
 
Ferramenta RSS
Ferramenta RSSFerramenta RSS
Ferramenta RSS
 
ASS-Projeto-VI-freeds
ASS-Projeto-VI-freedsASS-Projeto-VI-freeds
ASS-Projeto-VI-freeds
 
Projeto VI Feeds
Projeto VI FeedsProjeto VI Feeds
Projeto VI Feeds
 
Aula IV
Aula IV Aula IV
Aula IV
 
Fiocruz aprendendo r
Fiocruz aprendendo rFiocruz aprendendo r
Fiocruz aprendendo r
 
Resumo Interop
Resumo InteropResumo Interop
Resumo Interop
 
Feeds (RSS)
Feeds (RSS)Feeds (RSS)
Feeds (RSS)
 

Uso do rss como ferramenta educacional na tv digital

  • 1. 1º Simpósio Internacional d Televisão Digital (SIMTVD) – 18 a 20 de novem de mbro, Bauru/SP Uso do RSS como Ferramenta Educacional na TV Digital PINTO, Rafael Peres Rosa MENDES, Carlos Otávio Schocair LEÃO, Jorge Lopes de Souza PEDROZA, Aloysio de Castro Pinto RESUMO Este artigo apresenta uma ferramenta de autoria, especialmente desenvolvida para o Sistema Brasileiro de TV Digital (SBTVD) para leitura de RSS, utilizando-se as linguagens NCL e Lua, sendo modelada pelo diagrama de se estados. O RSS (Really Si Really Simple Syndication) é conjunto de tags (marcas) de formato definido pela norma que utiliza a linguagem de marcação XML (eXtensible Markup Language normalmente indicado nos sítios com o símbolo Language), . . A finalidade do RSS é a possibilidade de receber atualizações de sítios de com informações resumidas, sem que o mesmo seja diretamente consultado. Sítios modificam seu conteúdo com certa regularidade, possuem feeds que permitem o acesso a conteúdos específicos e resumidos. O usuário pode visualizar diretamente através do browser ou softwares conhecidos como r agregadores ou leitores que armazenam previamente os conteúdos dos RSS, escolhidos pelo usuário para futura consulta. O RSS pode ser utilizado como ferramenta educacional, acessando conteú conteúdos de forma distribuída na Internet sem, contudo, ver todo o conteúdo no sítio. Durante um documentário ou aula, o aluno pode apreciar mais informações, constante no RSS de um determinado sítio correlato ao assunto que está sendo visto. E mais, pode acompanhar as novidades sobre o assunto estudado, toda vez que houver alteração em tempo real do conteúdo no feed pesquisado. O RSS mostra-se um recurso se interessante para leitura prévia de objetos de aprendizagem, contidos em sítios que posteriormente podem ser lidos na sua íntegra, caso haja interesse em lidos complementar a informação. A ferramenta é carregada inicialmente no STB (Set-Top Box), por radiodifusão ou pela porta USB. O usuário escolhe a url ), contendo o RSS, a ferramenta acessa via canal de retorno, o seu cont conteúdo apresentado na forma de ticker (notícias contínuas deslizantes) na parte inferior, juntamente com o vídeo principal na tela da TV. O usuário poderá escolher ainda entre ver somente a mensagem inicial ( (ticker) ou a descrição ) completa do RSS, enquanto assiste ao vídeo principal. Neste caso o vídeo é assiste reduzido em seu tamanho para conter esta descrição na tela. : PALAVRAS-CHAVE: RSS. Ferramenta Educacional. Objetos de Aprendizagem. EaD. SBTVD. NCL/Lua. 742
  • 2. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 1. Introdução Este trabalho apresenta uma ferramenta que pode ser utilizada no aprendizado mediado por TV no SBTVD (Sistema Brasileiro de TV Digital) desenvolvida a partir das especificações do GINGA, especialmente a parte GINGA-NCL (ABNT NBR 15606, 2008). O GINGA é um middleware desenvolvido para o SBTVD, padrão adotado pelo governo brasileiro para aplicações interativas. A ferramenta pode ser utilizada como coadjuvante durante as aulas na TV como recurso adicional de Educação a Distância (EaD) ao conteúdo apresentado pelo palestrante/professor (MENDES et. al., 2008 e 2009). O aluno/telespectador poderá acessar via canal de retorno ou de interatividade, conteúdos simplificados sobre o assunto correlato, através do RSS (2009) ou até mesmo obter a descrição contida no RSS sem, contudo, acessar todo o conteúdo da página do sítio em questão. 2. Apresentação O trabalho está dividido em capítulos, o primeiro contém uma breve introdução do assunto. E neste capítulo 2 é apresentada a estrutura dos capítulos. No capítulo 3 a fundamentação teórica do RSS. No capítulo 4 apresenta conteúdo sobre Objetos de Aprendizagem demonstrando a importância das ferramentas de aprendizado na EaD. No capítulo 5 a metodologia empregada com a visão geral do funcionamento da ferramenta, incluindo a modelagem da ferramenta utilizando diagrama de estados. 743
  • 3. 1º Simpósio Internacional d Televisão Digital (SIMTVD) – 18 a 20 de novem de mbro, Bauru/SP No capítulo 6 a demonstração do sistema apresentando as principais linhas de códigos usadas na aplicação e telas do sistema de acordo com o diagrama de estados do capítulo 5. No capítulo 7 apresenta as principais dificuldades e soluções encontradas durante o desenvolvimento da ferramenta. radas No capítulo 8 a conclusão e por último no capítulo 9 as sugestões para trabalhos futuros. 3. RSS O RSS possui alguns significados conforme a versão. Neste artigo será considerada a versão RSS 2.0, portanto, seu significado neste caso é Really Simple Syndication. Seu principal uso é na divulgação de modificação de . informações contidas em sítios, muitas vezes usados em notícias e blogs. A leitura do feed que representa o caminho para o conteúdo do RSS, indicado pelo símbolo lo , pode ser feita diretamente através de browsers (Internet Explorer, Firefox, Opera, dentre outros) ou leitores específicos de RSS denominados agregadores como, por exemplo: Google Reader, Bloglines, FeedReader que armazenam previamente o conteúdo para posterior consulta. conteúdo O RSS utiliza a linguagem XML (eXtensible Markup Language ) para (eXtensible construção do conteúdo, que pode ser disponibilizado através de canais de notícias (RSS, 2009) (XML, 2009). O canal contém um conjunto de itens referentes à me mesma área de conhecimento, portanto, um sítio pode conter um ou mais canais dependendo da área de conhecimento. A produção de mais canais é comum em sítios de notícias como por exemplo: portais, jornais e revistas eletrônicas. 744
  • 4. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Na figura 1 é observada a forma de construção do RSS onde a linha 1 representa o cabeçalho indicando a versão do RSS 2.0. Figura 1 – código exemplo de RSS Na linha 2 da mesma figura é observado o canal que representa um conjunto de notícias de uma determinada área de conhecimento, exemplo de canais de notícias: últimas, país, esporte, tecnologia. Linhas 3 e 4 representam respectivamente o título da página e o endereço principal do sítio. A tag <item> na linha 6 é o título da notícia que pode ser obtida na íntegra no sítio, caso haja interesse do usuário através da linha 7. É possível ainda obter uma breve descrição do assunto (linhas 8 a 13), sem a necessidade de acessar a o conteúdo inteiro no sítio. Na linha 14 existe a indicação da data de publicação da informação. E por último nas linhas de 15 a 17 representam as tags de fechamento. Neste exemplo foram supridas algumas tags que não eram específicas do RSS e também outras notícias que poderiam existir em outros itens (<item>) e/ou outros canais (<channel>). 745
  • 5. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 4. Objeto de Aprendizagem O uso de Objeto de Aprendizagem (OA) pode ser usado na construção de cursos mediados por computador e pode ser entendido como um componente educacional como: software, texto, figura, áudio e vídeo (WILEY, 2000). Com a tecnologia da TV Digital é possível o uso de recursos interativos nas teleaulas. Este artigo propõe o uso da ferramenta de autoria interativa como objeto de aprendizagem no auxílio a teleaulas ou vídeos, onde o emissor de conteúdo pode enviar juntamente com o vídeo principal esta aplicação, permitindo ao usuário/aluno escolher através de botões interativos localizadas na tela do lado esquerdo, ler o conteúdo do RSS. A vantagem desta técnica, como o feed é dinâmico, o telespectador obterá conteúdos online dessas informações inicialmente no canto inferior da tela juntamente com a teleaula ou vídeo principal. Este sistema permite ainda ao usuário obter um pequeno resumo quando disponível do título do feed apresentado, sem a necessidade de acessar o site para obter a informação completa. Ficando a critério do usuário, um acesso direto ao site para obter mais informações. Neste trabalho procurou-se fornecer ao usuário de maior autonomia na escolha do feed que deseja obter informações. Como alternativa extra para a transmissão via radiodifusão da ferramenta é possível a alteração do código, onde o usuário escolheria apenas se desejasse ver o feed e/ou seu conteúdo resumido (opção detalhes) simultaneamente ao vídeo ou aula principal. O feed para o RSS seria previamente escolhido pelo emissor de conteúdo e transmitido juntamente com a aula. 746
  • 6. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 5. Metodologia e Modelagem do Sistema Neste capítulo são descritas as metodologias utilizadas na pesquisa, bem como o diagrama de estados que compõe a ferramenta. A aplicação foi desenvolvida permitindo o aluno acessá-la como complemento da aula, utilizando-se do RSS. O feed pode ser inserido via pendrive em arquivo .txt (modo texto), digitado diretamente através do teclado comum inserido no STB ou mesmo via teclado virtual apresentado na tela, neste caso, sendo digitado pelo controle remoto do equipamento. Uma vez determinados os objetivos e o funcionamento da ferramenta, o próximo passo foi a definição do middleware e posteriormente a linguagem para concepção do protótipo. O midlleware é componente de software intermediário entre o hardware/sistema operacional e a aplicação para a TV Digital. Devido a este componente, uma mesma aplicação de TV pode ser executada em qualquer equipamento compatível com o padrão do middleware. Neste ponto optou-se pelo SBTVD (Sistema Brasileiro de TV Digital) que utiliza o middleware GINGA. A parte NCL do middleware GINGA no momento da pesquisa já estava normatizada, sendo desenvolvida e implementada pelo grupo de pesquisa Telemídia da PUC-Rio, por este motivo foi adotada como padrão nesta pesquisa (PUC-RIO, 2009). O acesso ao canal de retorno, apresentação dos textos e funções foram desenvolvidos na linguagem Lua. Esta linguagem é coadjuvante a linguagem NCL (Nested Context Language) que é a linguagem principal que associa e apresenta as mídias desenvolvidas em LUA (IERUSALIMSCHY, 2006) (NCL, 2009). 747
  • 7. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Durante a pesquisa foram testados dois middlewares o Set-top Box Virtual Ginga-NCL desenvolvido pela PUC-Rio e o Middleware da RCASOFT (PUC-RIO, 2009) (RCASOFT, 2009). O Set-top Box Virtual apresentou problemas com relação à função LuaTCP que até a versão v.0.10.1 ainda não tinha sido possível obter um funcionando satisfatório de acordo com estabelecido na norma GINGA (ABNT NBR 15606, 2008). Para contornar este problema foi instalado a classe LuaSocket, estendendo o código do middleware original da PUC-Rio, mesmo entendendo que esta não faz parte da norma atual. A mudança desta classe para o LuaTCP no futuro não causará problemas devido a modularidade que a ferramenta RSS foi desenvolvida. A segunda opção seria a utilização do middleware da RCASOFT que possui compatibilidade até o momento somente com o STB (Set-Top Box) da Proview modelo XPS-1000. Este midleware é compatível com parte da norma GINGA, sendo implementada somente a parte NCL/LUA (RCASOFT, 2009). O middleware da RCASOFT foi descartado pela pesquisa devido a não suportar vídeos via USB, com isso, a representação de vídeos simultaneamente com RSS inseridos na aplicação para demonstração da ferramenta em funcionamento, ficaria prejudicada. Neste equipamento, os vídeos só podem ser vistos, se apresentados por radiodifusão, utilizando-se do codec via hardware instalado no equipamento STB (Set-top Box) da Proview. Vale ressaltar que testes foram realizados com este equipamento Proview durante a pesquisa, utilizando a classe LuaTCP no lugar do LuaSocket no canal de retorno, apresentado funcionamento satisfatório em rede local, mas utilizando a internet e, em alguns momentos, não foi possível obter o conteúdo completo solicitado. 748
  • 8. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Para melhor entendimento das funções e ações que deveriam ser desenvolvidas pela ferramenta foi utilizado o diagrama de estados (figura 2) com a visão geral das funções, módulos e interações das mídias na aplicação que serão detalhadas as partes essenciais no próximo capítulo. O vídeo utilizado na demonstração do funcionamento da ferramenta foi obtido da aula de Língua Portuguesa do Telecurso 2000, programa educativo desenvolvido pela Fundação Roberto Marinho (2009). Após o sucesso na leitura do pendrive pelo STB, o usuário deve escolher a partir de três botões RSS (vermelho), X que representa o cancelar (verde) e Detalhes (amarelo). O botão “RSS” exibe o conteúdo do título do RSS no canto inferior na forma de rolagem deslizante (ticker), reduzindo o vídeo para 80% de seu tamanho original. O botão “Detalhes” exibe a descrição (na lateral direita) quando disponível do RSS, reduzindo o vídeo em 50% de seu tamanho original e, por último, o botão “X” cancela a operação Detalhes ou RSS, retornando ao início apresentando o botão “INFO”. 749
  • 9. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 2 – Diagrama de estados mostrando uma visão geral da aplicação 750
  • 10. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 6. Funcionamento da Ferramenta Neste capítulo serão descritos em seções os principais códigos representados através de figuras, sempre com linhas numeradas para facilitar o entendimento da ferramenta, segmentados, seguindo o diagrama de estados apresentado no capítulo 5. Juntamente com a discussão das linhas de códigos do módulo em questão é apresentada a tela demonstrativa correspondente, quando pertinente. 6.1 Início da aplicação A primeira mídia a ser executada na aplicação é o script “init.lua”, que apenas escreve no log indicando o início da aplicação e serve como porta de entrada para iniciar outras duas mídias com o evento “onBeginStartN”, que são o vídeo e o botão de interatividade, como mostra a figura 3. Figura 3 – Elo que inicia o vídeo e o botão de interatividade. A partir deste momento o vídeo passa a ser exibido em tela cheia e o botão de interatividade é apresentado no topo esquerdo da tela, indicando a opção de interatividade, como mostra a figura 4. 751
  • 11. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 4 – Aplicação com o botão de interatividade o vídeo em execução. 6.2 Seleção do botão INFO e as formas de apresentação do RSS Quando o usuário pressiona a tecla “INFO”, o botão de interatividade é escondido e outros dois botões são apresentados, o botão de definição de “RSS” e o botão “X” de cancelamento como demonstra a figura 5. Figura 5 – Opções de definição de RSS e cancelamento em exibição. 752
  • 12. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Os eventos dos botões de definição de “RSS” (botão verde do controle remoto) e o de cancelamento, representado pelo botão “X” (botão vermelho do controle remoto) sempre levam em consideração o valor do atributo “estagio” da mídia “nodeSettings”, que é do tipo “application/x-ginga-settings”. O atributo “estagio” possui o valor inicial “1”. É utilizado para diferenciar eventos associados à mesma mídia que devem atuar de formas diferentes de acordo com o estágio em que a aplicação se encontra, podendo assumir valores conforme tabela 1. Valor Significado do atributo “estagio” 1 Estágio inicial, nenhum RSS definido 2 RSS definido e em apresentação 3 Alterando o RSS em exibição 4 Exibindo o detalhe da notícia atual Tabela 1 – Significado dos valores possíveis para o atributo “estagio” 6.3 Seleção do botão verde (RSS) Com o estágio da aplicação ainda definido como “1”, quando o usuário pressiona a tecla “VERDE”, o vídeo é redimensionado a 80% da altura referente ao valor inicial. Nos outros 20% disponíveis na parte inferior da tela são apresentadas duas imagens com os seguintes itens do menu: “Recuperar a URL do RSS a partir do USB” e “Definir a URL do RSS manualmente”. A figura 6 mostra o código representativo e na figura 7 a respectiva tela. 753
  • 13. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 6 – Elo que exibe as opções de entrada de dados. Figura 7 – Aplicação com as opções de entrada e exibição. A segunda opção, ainda está em desenvolvimento, o objetivo é apresentar um campo de texto em que o usuário possa informar a URL (Universal Resource Locator) do feed para o RSS, utilizando o teclado virtual através do controle remoto ou teclado real para digitação do texto, sem uso do pendrive na porta USB. 754
  • 14. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 6.4 Escolha da opção “Recuperar a URL do RSS a partir do USB” Após selecionar opção de definição de URL via USB, a mídia “instrucoesMenuUSB” do tipo HTML carrega uma página HTML contendo as informações necessárias para definir a URL via USB, como, o nome e formato do arquivo que será carregado, como mostram a codificação na figuras 8 e a sua respectiva tela na figura 9. Figura 8 – Elo que exibe as instruções de entrada via USB. Figura 9 – Aplicação com as instruções de entrada em execução. 755
  • 15. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 6.5 Montagem e tratamento da informação do dispositivo USB Após o usuário selecionar a tecla “ENTER”, a mídia “controladorUSB” do tipo Lua é carregada. Este script lua é responsável por montar o dispositivo, caso necessário, recuperar a URL no arquivo especificado e armazenar esta URL em um arquivo temporário no diretório da aplicação, utilizando o módulo “conteudo” descrito na figura 10. Figura 10 – Código Lua do controlador de USB. As linhas 5 e 7 são funções de montagem e de desmontagem do dispositivo USB, utilizadas para simular uma montagem automática no receptor. 756
  • 16. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Na linha 8 a URL do RSS é recuperada utilizando o módulo “conteudo” que será descrito em detalhes na seção 6.8. Caso o processo não tenha sido bem sucedido, a mídia “instrucoesMenuUSBErro” do tipo HTML é iniciada, exibindo uma página HTML indicando que houve um erro na recuperação da URL (figura 11) e novamente apresentando as instruções ao usuário da figura 7. Figura 11 – Aplicação informando que houve um erro ao recuperar a URL. 6.6. Apresentação dos botões “RSS” e “Detalhes” Caso o processo tenha sido bem sucedido, o controlador USB exibe os botões de definição de RSS e de detalhe de notícia, e também inicia o controlador de rodapé, como mostra a codificação na figura 12 e tela na figura 17. 757
  • 17. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 12 – Elo que inicia a exibição do RSS. O controlador de rodapé é uma mídia do tipo Lua, é o script que recupera, processa e exibe o RSS no rodapé da tela. Todo esse processamento foi dividido em quatro módulos Lua: rss, conteudo, texto e stringUtil. 6.7 Módulo “stringUtil” O primeiro módulo a ser descrito é o módulo “stringUtil”, definido no arquivo “stringUtil.lua” ele é o módulo que disponibiliza funções de manipulação de strings que não estão definidas no módulo “string”, como por exemplo a remoção de espaços excedentes de uma string utilizando a função “trim()”. 6.8 Módulo “conteúdo” O módulo “conteudo” é definido no arquivo “conteudo.lua”, este módulo é o responsável por armazenar e recuperar o conteúdo do sistema de arquivos local e também via protocolo HTTP. A função de recuperação HTTP utiliza o módulo “Luasocket”, não especificado na norma oficial do Ginga, porém foi utilizado devido a problemas com a classe “tcp” no middleware de referência, 758
  • 18. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP caso a aplicação seja migrada para utilizar a classe “tcp”, o módulo “conteudo” será responsável apenas por manusear conteúdo local. Figura 13 – Código Lua do módulo “conteudo”. Na figura 13 a função “obterConteudoRemoto”, na linha 20, utiliza a API do módulo “LuaSocket” para efetuar a comunicação HTTP pelo canal de retorno. 6.9 Módulo “rss” 759
  • 19. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP O módulo “rss” é definido no arquivo “rss.lua”, este módulo é responsável por receber uma string contendo as informações do RSS e transformá-las para estruturas de domínio, na forma de tabelas aninhadas. O processamento do XML do módulo “rss” foi escrito a partir da função baseada no parser de XML desenvolvido por Yutaka Ueno (2009). Este parser transforma o XML em uma estrutura de tabelas aninhadas e dinâmicas. No desenvolvimento desta ferramenta foram realizados alguns ajustes, estendendo o código original para permitir o uso de acordo com o padrão para exibição desta mídia na tela da TV Digital (figura 14). Figura 14 – Parte a função de processamento de XML. 760
  • 20. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Na figura 14 as linhas 1 e 2 foram removidas a definição de “CDATA” e, nas linhas 11, 12 e 13 restaurados os escapamentos e retirados os excessos de espaços do conteúdo. Após este processamento foram transferidas estas informações para outras estruturas mais organizadas, selecionando apenas as informações utilizadas na aplicação. Figura 15 – Parte da função de criação das estruturas que armazenam o RSS. A função demonstrada na figura 15 recebe uma estrutura em forma de tabela que contém informações de itens e canais. 761
  • 21. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP A estrutura final é descrita nas linhas 2, 3 e 4, uma tabela com informações do RSS, aninhada a outras tabelas com informações dos canais e, cada tabela de canal possui tabelas aninhadas com informações sobre os seus itens. 6.10 Módulo “texto” O módulo “texto” é definido no arquivo “texto.lua”, este módulo é responsável por exibir um texto na aplicação utilizando a API canvas. Este módulo possui a função : “desenharListaTextosMoveis(listaTextos,funcaoRecuperaListaAtualizada ,funcaoInformandoItemAtual)” que percorre a lista de textos exibindo-os no rodapé da aplicação por tempo indeterminado, isso é possível devido a criação de uma função recursiva e assíncrona que é executada utilizando a classe “event”. Esta função basicamente preenche toda a região do rodapé de preto e desenha o texto em cor branca no canto direito da tela. Ao final da execução, utiliza-se a função “timer()” da classe “event” para chamar a si mesma, após 60 milissegundos, na nova execução o texto será desenhado um pixel à esquerda, criando assim o efeito de rolagem de texto. Essa função (figura 16) recebe como parâmetro duas outras funções: “funcaoInformandoItemAtual” e “funcaoRecuperaListaAtualizada”. A primeira é executada quando um texto passa por toda a tela, a função recursiva passa para o outro item da lista de textos e invoca esta função recebida. E como parâmetro informa o texto, como por exemplo: “funcaoInformandoItemAtual('Texto Atual')”, funciona basicamente como um callback para informar ouvintes sobre a atualização do texto, no caso específico, esse ouvinte é o controlador de detalhe. 762
  • 22. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Já a função “funcaoRecuperaListaAtualizada()” é executada quando todos os itens da lista já foram exibidos, assim esta função recupera uma nova lista atualizada que será exibida logo em seguida. Figura 16 – Parte da função recursiva que desenha o RSS no rodapé. A variável “ponteiro” da linha 36 (figura 16) faz referência para a função “desenhaAssincrono”, fazendo assim um processo recursivo. Enquanto os títulos das notícias são apresentados no rodapé da aplicação pelo controlador de rodapé, são exibidos os botões de definição de RSS, cancelamento e detalhe, conforme figura 17. Neste ponto o atributo “estagio” da mídia “nodeSettings” é definido com o valor “2”, que indica que um RSS foi definido. 763
  • 23. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 17 – Aplicação em execução com o RSS sendo exibido. Ao selecionar o botão RSS será pedido um novo feed de acordo com o explicado na seção 6.3. Caso seja escolhido o botão “X” ele retorna a tela com botão interatividade “INFO” e redimensiona a tela para o tamanho normal retornando como apresentado na seção 6.1. 6.11 Apresentação do detalhe do conteúdo do RSS (tecla amarela) O botão “Detalhe”, quando selecionado pela tecla do controle remoto “AMARELA”, dispara o evento “comandoEscreverDetalhe” do controlador de detalhe. Este evento faz o controlador obter o template HTML de detalhe de um arquivo HTML local, e encaixe as informações da notícia atual enviadas pelo controlador de rodapé no documento, como mostra a figura 18. 764
  • 24. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 18 – Elo que inicia a exibição do detalhe da notícia atual. Após este procedimento tem-se em memória um documento HTML, formatando o título e a descrição da notícia atual. O próximo passo é armazenar este conteúdo no arquivo detalhe.html, depois redimensionar a largura do vídeo para 50% e iniciar a execução da mídia “detalheHTML”, tipo HTML que apontando para o arquivo criado, apresenta os detalhes da notícia atual junto com o vídeo. 765
  • 25. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 19 – Detalhe da notícia atual em exibição. Mesmo com as notícias mudando no rodapé da aplicação, a exibição do detalhe se mantém até que o usuário pressione o botão “X” de cancelamento. As linhas 7 a 16 da figura 20 são os eventos que atualizam as variáveis que armazenam as informações da notícia atual. Entre as linhas 18 e 36 representam o evento de criação do arquivo de detalhe, o template HTML é recuperado na linha 21 e preenchido nas linhas 28 e 29. E das linhas 24 a 27 é feito o truncamento do detalhe da notícia, caso este tenha mais de 450 caracteres. Finalmente na linha 33 é feito o armazenamento dos detalhes da notícia. 766
  • 26. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Figura 20 – Código Lua do controlador de detalhe. Com a seção 6.11 foram apresentados os principais códigos e as suas respectivas telas da ferramenta. 7. Problemas encontrados O primeiro problema como relatado inicialmente no capítulo 5 foi o funcionamento da classe “LuaTCP” no middleware de referência. Para 767
  • 27. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP remediar este problema foi utilizado o módulo “LuaSocket”, estendido da norma Ginga. No caso do middleware RCASOFT versão 1.6.20, o funcionamento da classe LuaTCP funcionou parcialmente, apresentado dificuldade na recuperação completa do conteúdo em determinadas vezes pela internet, recebendo apenas uma parte do conteúdo. Possivelmente devido a problemas de tempo de resposta, pois testes efetuados com RSS em rede local este middleware funcionou satisfatoriamente para todas as consultas. Como a ferramenta foi desenvolvida em forma modular, a modificação da classe LuaSocket para LuaTCP seria realizada sem maiores problemas. Os conteúdos externos no formato UTF-8, aparentemente a linguagem Lua contida no padrão GINGA não oferece suporte nativo a esses formatos, portanto, os arquivos HTML tiveram suas codificações alteradas para ISO- 8859-1. O módulo “LuaSocket” não recuperou corretamente os caracteres acentuados para casos em que o XML requerido esteja no padrão UTF-8 (2009) (ISO-8859-1, 2009). Outra dificuldade foi a não montagem automática do dispositivo USB no middleware de referência (STB virtual da PUC-Rio). A solução foi utilizar código de montagem e desmontagem do dispositivo de armazenagem USB (pendrive) dentro da própria aplicação desenvolvida. Este problema não foi observado no middleware da RCASOFT que monta automaticamente após a inserção do pendrive. O último problema descoberto e ainda não solucionado na parte de exibição de detalhe do RSS. Quando o conteúdo do arquivo da mídia HTML apontado é modificado e a mídia parada e novamente iniciada; aparentemente o navegador Links utilizado pelo middleware, não atualiza o conteúdo. Provavelmente o Links, browser nativo na implementação do middleware, faz cache, mesmo o HTML possuindo marcações “META” de expiração de cache. 768
  • 28. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP 8. Conclusão Este artigo mostrou uma ferramenta educacional para leitura de RSS na TV Digital implementando acesso via canal de retorno estendendo a norma utilizando a classe LuaSocket. Foi estudada uma forma de obter o feed para buscar o RSS montado via pendrive. Para o tratamento do XML proveniente da consulta ao RSS foi estendido um parser, para apresentação deste conteúdo na TV concomitante ao vídeo principal. Espera-se com este trabalho ter contribuído com esta ferramenta de autoria que pode ser utilizada como objeto de aprendizagem e coadjuvante durante as aulas em EaD. 9. Trabalhos futuros Como próximos passos para o aprimoramento desta aplicação podem ser destacados: Migrar a aplicação para utilizar a classe LuaTCP no lugar do LuaSocket para acessar o canal de retorno. Desenvolver suporte a recuperação de conteúdo no formato UTF-8, construindo um parser. 769
  • 29. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP Estudar melhor o mecanismo de cache de HTML do browser Links procurando uma forma de eliminá-lo quando necessário. Desenvolver a opção de entrada de dados manual para a definição da URL do RSS via teclado virtual e real. Desenvolver uma segunda versão da ferramenta para uso na transmissão via radiodifusão de conteúdo de RSS com feed estabelecidos previamente pelo emissor de conteúdo. Cabendo ao usuário apertar o botão “INFO”, definindo se desejam ler o título do RSS e/ou seus detalhes. Para esta modificação elimina-se o módulo “controlador de USB”. Referências bibliográficas ABNT NBR 15606. http://www.abnt.org.br/m3.asp?cod_pagina=1249. Última alteração em 2008. Acesso em 16 de outubro de 2009. FUNDAÇÃO ROBERTO MARINHO. Aula do Telecurso 2000 – Ensino Fundamental Português Aula 38. http://www.youtube.com/watch?v=ZgvPqXkTEJk. Acesso em 16 de outubro de 2009. IERUSALIMSCHY, Roberto. Programing in Lua. 2ª ed., Rio de Janeiro: Editora Lua.org, 2006, 308p. ISO/IEC 8859-1. http://anubis.dkuug.dk/JTC1/SC2/WG3/docs/n411.pdf. Acesso em 16 de outubro de 2009. MENDES, C. O. S. et. al. A TV Digital e a EaD Discutindo Alternativas de Ensino. In: 6º ETIC Encontro de Educação e Tecnologias de Informação e Comunicação, 2008, Rio de Janeiro. Anais do 6º ETIC Encontro de Educação e Tecnologias de Informação e Comunicação, 2008. MENDES, C. O. S.; SUZUKI, J. T. F. Uso da TV Digital na Escola Pública como Ferramenta de Aprendizado. 3º Congresso Nacional de Extensão Universitária, Londrina, 2009. NCL. http://ncl.org.br. Acesso em 16 de outubro de 2009. 770
  • 30. 1º Simpósio Internacional de Televisão Digital (SIMTVD) – 18 a 20 de novembro, Bauru/SP PUC-RIO. Set-top Box Virtual Ginga-NCL – Versão v.0.10.1. Laboratório Telemídia. http://www.ncl.org.br/ferramentas/fedora-fc7-ginga-i386.zip. Acesso em 16 de outubro de 2009. RCASOFT. http://www.rcasoft.com.br/. Acesso em 16 de outubro de 2009. RSS. http://validator.w3.org/feed/docs/rss2.html. Acesso em 16 de outubro de 2009. UENO, Y. Parser XML. http://lua-users.org/wiki/LuaXml. Acesso em 16 de outubro de 2009. UTF-8. http://en.wikipedia.org/wiki/UTF-8. Acesso em 16 de outubro de 2009. XML. http://www.w3.org/XML/. Acesso em 16 de outubro de 2009. WILEY, D. A., Connecting Learning Objects to Instructional Design Theory: A Definition, A Metaphor, and A Taxonomy, The Instructional Use of Learning Objects. Publicado em 2000. http://reusability.org/read/chapters/wiley.doc. Acesso em 16 de outubro de 2009. 771