Java na TV Digital - Programando interatividade com JavaDTV. Mini curso realizado em 10 de outubro de 2013 no SEMCOMP16 no Campus 2 da USP de São Carlos-SP.
O mini-curso vai abordar o padrão brasileiro do Sistema Brasileiro de TV Digital. O que é a interatividade na TV Digital? Mostraremos o middleware Ginga e sua arquitetura. Será apresentada a especificação JavaDTV , ambiente de desenvolvimento, ferramentas e demonstração de aplicativos. Cada participante vai programar e testar aplicações interativas.
2. Carlos Fernando Gonçalves
Mestre em Engenharia de Computação pelo Instituto de Pesquisas Tecnológicas
(2004) e graduação em Bacharel em Física pelo Instituto de Física de São Carlos
(1994). Quinze anos de experiência profissional. Consultor no projeto CEPID do
Centro de Estudos da Metrópole. Consultor e desenvolvedor, utiliza software livre e
Java nos seguintes temas: TV Digital Ginga-J, Web e Mobile. Consultor Técnico da
Organização Internacional UNESCO para o projeto WEBGIS - Mapas Interativos da Secretaria de Vigilância Sanitária - Ministério da Saúde (2007) DF- Brasília.
Trabalhou nas empresas: EverSystems Informática, Touch Tecnologia e PROCOMP
Indústria Eletônica LTDA. Tradutor e Revisor do IDE NetBeans. Fundador do Java
Noroeste - Grupo de Usuários Java do Noroeste Paulista.
3. Agenda
Padrões de TV Digital
Middleware Ginga
Ecosistema da TV Digital
Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Desenvolvendo interatividade com
JavaDTV /Ginga-J
Referências
4. Padrões de TV Digital
Sistema Brasileiro de Televisão Digital
Decreto Nº 4.901, de 26 de novembro de 2003
Institui o Sistema Brasileiro de Televisão Digital
http://www.forumsbtvd.org.br/anexos/decreto-tv-digital.pdf
DECRETO Nº 5.820, DE 29 DE JUNHO DE 2006.
Implantação do SBTVD-T
Decreto n.º 8.061/2013,
2015 até 2018
http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2006/Decreto/D5820.htm
Novembro de 2006
Fórum SBTVD
http://www.forumsbtvd.org.br/materias.asp?id=39
Início das transmissões em 2 de dezembro de 2007
http://www.dtv.org.br/informacoes-tecnicas/historia-da-tv-digital-no-brasil/
5. Padrões de TV Digital
Fonte: http://forumsbtvd.org.br/acervo-online/normas-brasileiras-de-tv-digital/
6. Padrões de TV Digital
ISDB-TB (Integrated Services Digital Broadcasting – Terrestrial Brazil)
Outros padrões
ATSC (Advanced Television System Committee)
DVB (Digital Video Broadcasting)
ISDB (Integrated Services Digital Broadcasting)
7. Padrões de TV Digital
ISDB-TB
Fonte: http://pt.wikipedia.org/wiki/Ficheiro:Digital_broadcast_standards.svg
Assim, Honduras(trocou ATCS) é o terceiro país na América Central a escolher o
padrão nipo-brasileiro, e o 15º no mundo. Uruguai, Argentina, Paraguai, Chile,
Bolívia, Peru, Equador, Venezuela, Costa Rica, Filipinas, Botswana e Guatemala
já optaram pelo ISDB-T, além de Brasil e Japão.
9. Padrões de TV Digital
ISDB-TB
TV Analógica e TV Digital
10. Padrões de TV Digital
Canal na TV Digital
A banda do canal legal no DTV é de 6MHz (igual ao do analógico PAL-M), como por
exemplo, o canal 14 começa na frequência de 470MHz e vai até 476MHz. O canal é
dividido em 14 segmentos de 428,57KHz, mas um segmento é descartado para a
transmissão, ficando somente 13, que são numerados de 0 a 12. Portanto a banda
de transmissão de um canal DTV é de 13x428,57=5,57MHz, mas para uma maior
segurança é expandida para 5,7MHz.
Segmento 0 que fica bem no centro, por ser de mais fácil recepção, é destinado para
receptores portáteis como celular. Por ser transmissão de 1 só segmento, é
conhecido como One Seg ou 1 Seg.
Fonte:http://imagemesomhd.blogspot.com/2010/01/tv-digital-sbtvdisdb-tb.html
11. Padrões de TV Digital
Multiprogramação
vantagem do sistema, é de poder aproveitar as camadas hierárquicas, por exemplo,
se uma camada estiver transmitindo um programa em SD e a segunda camada, o
mesmo programa em HD, a segunda aproveita também a primeira camada que tem
informações de SD para formar o HD. Um receptor móvel que só consegue receber o
SD, aproveita a primeira camada e descarta a segunda. Cada camada pode
transmitir um programa diferente, e acaba se tornando um canal lógico. Além da
transmissão One Seg, no Full Seg é possível ter até mais 3 programas em definição
padrão (SD), mas em Full HD (1920x1080) que utiliza todos os 12 segmentos, só é
possível transmitir 1 programa.
Fonte:http://imagemesomhd.blogspot.com/2010/01/tv-digital-sbtvdisdb-tb.html
12. Padrões de TV Digital
TV Analógica e TV Digital
Esse número é a relação entre Largura e Altura da tela. Às vezes é chamada de “tela de
cinema” ou “tela larga”.
Para ver um imagem de alta definição verdadeira (1920 pixels na horizontal e 1080
pixels/linhas na vertical) o televisor precisa ter, no mínimo, 42 polegadas (da ordem de
1.07m) de diagonal. Isso equivale a uma largura de 93cm e altura de 52cm, porque a
largura/altura é 16/9.
13. Padrões de TV Digital
Codificação e Compressão – Carrossel
●
DSM-CC (Digital Storage Media Command and Control)
–
No ambiente de TV digital, é utilizado para broadcast de dados e
sistemas de arquivos.
• Transmissão unidirecional – o receptor não tem como requisitar os dados
• Os dados são transmitidos de maneira cíclica
• O receptor é capaz de “remontar” os dados conforme são recebidos
• DSM-CC suporta dois tipos de carrossel
●
Carrossel de dados
●
Carrossel de objetos
15. Agenda
Padrões de TV Digital
Middleware Ginga
Ecosistema da TV Digital
Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Desenvolvendo interatividade com
JavaDTV /Ginga-J
Referências
16. Middleware Ginga
“O valor do televisor é percebido pelo número de
conteúdos que ele tem. Hoje, o desafio está no
software e não no hardware.”
Sony, Carlos Goya - 2011
"Brasil é o melhor país do mundo para investir", diz
presidente JW Kim da Samsung - 2011
17. Middleware Ginga
O Ginga é a especificação de middleware do SBTVD, resultado da
integração das propostas FlexTV [Leite 2005] e MAESTRO [Soares
2006], desenvolvidas por consórcios liderados pela UFPB e PUC-Rio
no projeto SBTVD , respectivamente
O Ginga integrou estas duas soluções, chamadas de Ginga-J e
Ginga-NCL , tomando por base as recomendações internacionais da
ITU. Desta forma, o Ginga é subdividido em dois subsistemas
interligados, também chamados de Máquina de Execução (Ginga-J) e
Máquina de Apresentação (Ginga-NCL)
19. Middleware Ginga
JavaDTV
Em 2008 foram verificados problemas com questões de
propriedade intelectual na parte MHP (APIs HAVI e
DAVIC)
Fórum do SBTVD e a SUN Microsystems propuseram
JavaDTV nova especificação em DEZ/2008
Pacotes da especificação JavaDTV 1.3 – extende os
pacotes do JavaTV 1.1 para implementar funcionalidades
específicas de TV Digital adicionais ou de menor grau de
abstração.
Acesse:
http://forumsbtvd.org.br/acervo-online/javadtv-download/
22. Agenda
Padrões de TV Digital
Middleware Ginga
Ecosistema da TV Digital
Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Desenvolvendo interatividade com
JavaDTV /Ginga-J
Referências
26. Ecosistema da TV Digital
Toshiba - TV 65WL800i3D - TV 55WL800i3D - TV 46WL800i3D
Sharp TV LED AQUOS LC-60LE640B TV LED AQUOS LC-70LE640B
D-Link Visiontec
27. Ecosistema da TV Digital
Multi-Screen
Interatividade na 2ª. Tela
Sincronização com o conteúdo
35. Ecosistema da TV Digital
Brasil 4D - EBC (Empresa Brasil de Comunicação - TV Brasil)
Projeto Brasil 4D recebe prêmios nacionais e internacionais
http://www.ebc.com.br/sobre-a-ebc/sala-de-imprensa/2013/08/brasil-4d-recebe-premios-nacionais-e-internacionais
36. Ecosistema da TV Digital
Ginga.BR.Labs
1) Instituto de Radiodifusão Educativa da Bahia – IRDEB (BA)
2) Fundação Televisão Rádio e Cultura do Amazonas – Funtec (AM)
3) Fundação Universidade do Tocantins – Unitins (TO)
4) Fundação Cultural Piratini - Rádio e Televisão (RS)
5) Fundação Rádio e Televisão Educativa de Uberlândia – RTU (MG)
6) Fundação Rádio e Televisão Educativa e Cultural - Fundação RTVE (GO)
7) TV Assembleia (MG)
8) Fundação Padre Anchieta (SP)
9) Televisão Universitária Unesp (SP)
10) Fundação Educativa de Rádio e Televisão Ouro Preto (MG)
http://convergenciadigital.uol.com.br/cgi/cgilua.exe/sys/start.htm?infoid=34339&sid=11#.UlZhoRBaUhI
38. Ecosistema da TV Digital
http://www.noticiasdatv.com.br/noticia/tecnologia/cinco-anos-apos-tv-digital-80-das-casas-ainda-tem-televisor-de-tubo-557
39. Agenda
Padrões de TV Digital
Middleware Ginga
Ecosistema da TV Digital
Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Desenvolvendo interatividade com
JavaDTV /Ginga-J
Referências
40. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
41. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
42. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
43. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
44. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Na caixa de email...
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
45. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acionar
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
46. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
47. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
astrobox
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
48. Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Acesse:
https://www.astrodevnet.com/AstroDevNet/home.html
51. Agenda
Padrões de TV Digital
Middleware Ginga
Ecosistema da TV Digital
Montando ambiente de desenvolvendo
JavaDTV /Ginga-J
Desenvolvendo interatividade com
JavaDTV /Ginga-J
Referências
52. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Aplicações Ginga-J podem obter acesso de forma genérica
aos planos gráficos oferecidos pelo terminal de acesso, para
configuração e exibição de conteúdo de acordo com um
modelo de camadas na tela do dispositivo.
53. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Planos gráficos
1. Plano[0]: Plano de texto e gráficos;
2. Plano[1]: Plano de seleção vídeo/imagem;
3. Plano[2]: Plano de imagens estáticas;
4. Plano[3]: Plano de vídeo.
Plano de legenda não é acessível
54. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Dica
Desenvolver para TV Digital é ter em mente que:
●
●
●
●
As aplicações tem uma área de trabalho de 1280X720
TVs e set-top-box tem por norma devem oferecer 6 MB
de memória
Em torno de 80% do tamanho das aplicações, são
constituídas de imagens
Existe um número pequeno de TVs com acesso a internet
55. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Xlet
As aplicações para TV interativa desenvolvidas em JavaDTV são
chamadas de Xlets.
O ciclo de vida dos Xlets é regido por quatro métodos:
- initXlet():responsável por inicializar os componentes da
aplicação e manipula o XletContext;
- startXlet(): que é o metodo chamado para iniciar a aplicação;
- pauseXlet(): chamando quando há um evento que causa uma
pausa na aplicação
- destroyXlet(): chamado quando a aplicação é destruída.
65. Desenvolvendo interatividade com
JavaDTV /Ginga-J
LWUIT
Light Weight User Interface Toolkit
Inspirado no LWUIT dos dispositivos móveis (JavaME/MIDP)
Foi baseado no Swing
Estilo Swing MVC
Melhorou componentes existentes
Não é compatível com o que se tem em JavaME
Pacotes, classes, métodos foram adaptados a realidade da TV Digital
67. Desenvolvendo interatividade com
JavaDTV /Ginga-J
O componente Form possui uma Barra de Título na parte superior em que o título do
formulário pode ser escrito e uma Barra de Menu na parte inferior, para os comandos
e menu. O espaço entre as duas barras é para o painel conteúdo, que carrega os
componentes a serem colocados no formulário.
**************************
*
Title
*
**************************
*
*
*
*
*
ContentPane
*
*
*
*
*
**************************
Form form = new Form();
Form form = new Form (“Formulário”);
68. Desenvolvendo interatividade com
JavaDTV /Ginga-J
O componente Label pode exibir de imagens e textos que não podem ser
selecionados e sem interação com o usuário. Possui um grande número de
possibilidades alinhamento que são suportados para o posicionamento do texto e à
imagem.
Label lb = new Label();
Label lb = new Label ( “SEMCOMP16”);
Label lb = new Label(imagem);
69. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Gerenciadores de Layout (Layout Managers) no LWUIT tem um gerenciador de
layout sofisticado para UIs. Os gerenciadores suportados são:
com.sun.dtv.lwuit.layouts
●
BorderLayout
●
BoxLayout
●
CoordinateLayout
●
FlowLayout
●
GridLayout
●
GroupLayout
●
Layout
●
LayoutStyle
70. Desenvolvendo interatividade com
JavaDTV /Ginga-J
O visual de todos os componentes LWUIT pode ser variado através de um objeto de
estilo associado. Alterar a aparência de um componente individual, você pode
recuperar o objeto de estilo e métodos de chamada para fazer alterações.
com.sun.dtv.lwuit.plaf
Border
DefaultLookAndFeel
LookAndFeel
Style
UIManager
71. Desenvolvendo interatividade com
JavaDTV /Ginga-J
LWUIT inclui o conceito de um Command. Um Command é algo que o usuário pode
fazer em sua aplicação. LWUIT decide como mostrar o comando na tela e como o
usuário faz acontecer. Normalmente, os comandos são atribuídos aos botões virtuais
de seu telefone móvel. LWUIT normalmente irá mostrar os comandos como etiquetas
nos cantos inferiores da tela, o usuário pode invocar pressionando o botão
correspondente. com.sun.dtv.lwuit.Command
com.sun.dtv.ui.event
interfaces KeyListener, UserInputEvent, UserInputEventListener
classes KeyEvent, UserInputEventManager, RemoteControlEvent
72. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Uma transição fornece uma pista útil visual para o usuário sobre a relação entre
diferentes formas.
LWUIT pode deslizar formas horizontalmente ou verticalmente. LWUIT inclui também
uma transição gradual de uma forma para outra.
73. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Dicas
●
●
●
●
Retirar cores amarelas de textos e substituir por negrito pois o usuário
confunde com hiperlink
Não utilizar o ícone de navegação de páginas para direita e esquerda
porque os usuários confundem com a tecla ‘play’
Manter as cores dos botões da aplicação na mesma ordem das cores dos
botões do controle remoto
Quando houver um texto que deve ser lido na sequência, não utilizar
diferentes telas, e sim o scroll vertical
81. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Ginga Hackathon
Labirinto Ginga-J
Raphael Ferras Gonçalves da Silva, ex-aluno do curso de Bacharel em Ciências de
Computação pelo ICMC-USP São Carlos apresentou mini palestra: Usando Canvas em games
para Ginga-J
Apresentação no The Developers Conference 2013 – Trilha de TV digital
http://www.thedevelopersconference.com.br/tdc/2013/saopaulo/trilha-tv-digital#programacao
82. Desenvolvendo interatividade com
JavaDTV /Ginga-J
Dicas
Games com Ginga-J :
●
Sempre evitar de utilizar um loop principal da aplicação. Isto evita ter
problemas de threads ou perda de sincronismo
●
Sempre utilizar AWT
●
Usar a fila de eventos do AWT para controlar os eventos de
animação e similares necessários para o jogo.
85. Referências
Parte 4: Ginga-J - Ambiente para a execução de aplicações procedurais
http://www.dtv.org.br/download/pt-br/ABNTNBR15606-4_2010Ed1.pdf
Parte 6: Java DTV 1.3
http://www.tvdi.inf.br/site/artigos/Normas%20ABNT/15606-6-Middleware.pdf
Introdução a interatividade na TV Digital
http://www.slideshare.net/mercuriocfg/tutorial-introduo-ainteratividadenatvdigitalicmcuspsaocarlos20130828
Informações sobre TV Digital interativa
http://blog.globalcode.com.br/2011/10/informacoes-sobre-tv-digital-interativa.html
Blog Thiago G. Vespa
http://www.thiagovespa.com.br/blog/category/tv-digital/
86. Referências
Ginga, Java e Interatividade na TV Digital
http://blog.globalcode.com.br/2013/02/ginga-java-e-interatividade-na-tv.html
Trilha TV Digital 2013 The Developers Conference –São Paulo
http://www.thedevelopersconference.com.br/tdc/2013/saopaulo/trilha-tv-digital#programacao
Trilha TV Digital 2012 The Developers Conference –São Paulo
http://www.thedevelopersconference.com.br/tdc/2012/saopaulo/trilha-tv-digital#programacao
Trilha TV Digital 2011 The Developers Conference - Goiânia
http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-tv-digital#programacao
Trilha TV Digital 2011 The Developers Conference –São Paulo
http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-tvdigital#programacao
Blog Thiago G. Vespa
http://www.thiagovespa.com.br/blog/category/tv-digital/
88. Referências
Grupo de Usuários Java Noroeste Paulista
8 ANOS
Fundado em 24 de outubro de 2004
http://groups.google.com/group/javanoroeste?hl=pt-BR_US
Pelo site é possível se cadastrar:
http://javanoroeste.com.br/javanoroeste/