Java na TV Digital - Programando interatividade com JavaDTV

Post on 22-Apr-2015

1.497 views 3 download

description

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.

Transcript of Java na TV Digital - Programando interatividade com JavaDTV

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

Obrigado :)carlosfgo@gmail.com

mercuriocfg@yahoo.com.br@mercuriocfg@javanoroeste

www.javanoroeste.com.br