Minicurso Java na TV Digital - Programando interatividade com JavaDTV
Apr 22, 2015
Minicurso Java na TV Digital - Programando
interatividade com JavaDTV
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.
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
Agenda
Padrões de TV DigitalSistema 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
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/
Decreto n.º 8.061/2013,2015 até 2018
Padrões de TV Digital
Fonte: http://forumsbtvd.org.br/acervo-online/normas-brasileiras-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)
Padrões de TV Digital
Padrões de TV DigitalISDB-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.
Padrões de TV DigitalResolução de TV
Padrões de TV DigitalISDB-TB
TV Analógica e TV Digital
Padrões de TV DigitalCanal 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
Padrões de TV DigitalMultiprogramaçã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
Padrões de TV DigitalTV 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.
Padrões de TV DigitalCodificaçã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
Padrões de TV Digital
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
Agenda
“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
Middleware Ginga
Middleware GingaO 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)
MW Ginga
Ginga-J Ginga-NCL
BR
IDG
E
Ginga COMMON COREJVM
CDC 1.1 / FP 1.1 / PBP 1.1
AP
Is b
r.o
rg.s
btv
d
NC
L F
orm
atte
r
LU
A S
crip
t
XH
TM
L +
CS
S +
EC
MA
Scr
ipt
SM
IL T
ran
siti
on
s
Mo
no
-med
ia P
laye
rs
JavaTV 1.1
JMF
JavaDTVLWUIT
Middleware Ginga
Middleware Ginga
JavaDTVEm 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/2008Pacotes 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/
Middleware Ginga
Ginga-J
Middleware Ginga
CDC 1.1 / FP 1.1 / PBP 1.1
JavaTV 1.1
Med
ia A
PIs
Ap
plic
atio
n M
ana
gem
ent
MP
EG
Con
cep
ts
Bro
adca
st F
ilesy
ste
m
MP
EG
Sec
tion
Filt
erin
g
Tu
ning
Net
wor
k D
evic
e
Use
r S
ettin
gs &
Pre
fs
Eve
nts
ARIB extensions
Con
tent
Se
curit
y
Re
sour
ce M
ana
gem
ent
Per
sist
ent
Sto
rage
TV
Gra
phic
s
SBTVD Extensions
Applications
UI
Wid
get
Set
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
Ecosistema da TV Digital
Ecosistema da TV Digital
Ecosistema da TV Digital
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
Multi-ScreenInteratividade na 2ª. Tela
Sincronização com o conteúdo
Ecosistema da TV Digital
Híbrido Broadband & Broadcast
Ecosistema da TV Digital
Push VoD
sem necessidade de conexão à Internet
Ecosistema da TV Digital
Hotel
Ecosistema da TV Digital
Cemig
Ecosistema da TV Digital
TV analógica aberta
Ecosistema da TV Digital
Ecosistema da TV DigitalTV Digital aberta
TV Digital aberta
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
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
Ecosistema da TV Digital
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
Ecosistema da TV Digital
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
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Na caixa de email...
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Acionar
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
astrobox
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Digitar email cadastrado:
Montando ambiente de desenvolvendo JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Digitar senha cadastrada:
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
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.
Desenvolvendo interatividade com JavaDTV /Ginga-J
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
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
XletAs 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.
Desenvolvendo interatividade com JavaDTV /Ginga-J
Xlet
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
Primeiro exemploAlô Mundo
Desenvolvendo interatividade com JavaDTV /Ginga-J
public class Exemplo_01_Xlet implements Xlet {
protected XletContext xletcontext;
public void initXlet(XletContext xc) throws XletStateChangeException {
this.xletcontext = xc;
}
public void startXlet() throws XletStateChangeException {
Form mainForm = new Form("Alô mundo!");
Label label = new Label(" Alô mundo!");
MainForm.addComponent(label);
mainForm.show();
}
public void pauseXlet() {
}
public void destroyXlet(boolean bln) throws XletStateChangeException {
}
}
Desenvolvendo interatividade com JavaDTV /Ginga-J
Problema na acentuação?
DicasSempre deixar Source Level=JDK 1.3 e Enconding=UTF-8
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
DicasAdicionar as bibliotecas ao projeto
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
Desenvolvendo interatividade com JavaDTV /Ginga-J
LWUIT
Light Weight User Interface Toolkit
Desenvolvendo interatividade com JavaDTV /Ginga-J
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”);
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);
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
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
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
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.
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
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
Segundo exemploÍcone animado
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
Terceiro exemploTeclas
Desenvolvendo interatividade com JavaDTV /Ginga-J
Desenvolvendo interatividade com JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Mapa de teclas
Desenvolvendo interatividade com JavaDTV /Ginga-J
Acesse:https://www.astrodevnet.com/AstroDevNet/home.html
Mapa de teclas
Ginga Hackathon
https://www.facebook.com/events/513829981993640/
Desenvolvendo interatividade com JavaDTV /Ginga-J
Ginga Hackathon
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
Labirinto Ginga-J
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.
Desenvolvendo interatividade com JavaDTV /Ginga-J
Perguntas
Perguntas?
Curso gratuito
http://www.globalcode.com.br/treinamentos/cursos/videoaulas/java-e-tv-digital
Desenvolvendo interatividade com JavaDTV /Ginga-J
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/
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/
Referências
Yara Senger Bruno Souza
Javaman
Referências
Vinicius Senger Thiago G. Vespa
Grupo de Usuários Java Noroeste Paulista
8 ANOSFundado em 24 de outubro de 2004
http://groups.google.com/group/javanoroeste?hl=pt-BR_USPelo site é possível se cadastrar:
http://javanoroeste.com.br/javanoroeste/
Referências