1. O documento apresenta uma ferramenta educacional desenvolvida para o Sistema Brasileiro de TV Digital que permite a leitura de RSS. 2. A ferramenta exibe conteúdos RSS na parte inferior da tela ou reduz o vídeo principal para mostrar a descrição completa do RSS. 3. Isso permite que os alunos acessem informações adicionais relacionadas ao assunto apresentado no vídeo educacional.
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