Professional Documents
Culture Documents
Aplicações Java para TV
Digital
Douglas Braga de Alencar, Pesquisador em TV Digital do
Centro de Pesquisa e Desenvolvimento em Tecnologia
Eletrônica e da Informação (CETELI) da Universidade Federal
©2007 CETELI
do Amazonas (UFAM)
dbalencar@ufam.edu.br
Middleware
©2007 CETELI
2
DAVIC
(Digital AudioVisual Council)
©2007 CETELI
3
HAVi
(Home Audio Video Interoperability)
©2007 CETELI
4
JavaTV
É uma extensão da plataforma Java que permite a produção de
conteúdo para TV Interativa. Sua função é permitir a criação de
aplicações interativas portáteis para TV, independentes da
tecnologia de transmissão. Java TV Consiste basicamente de
uma máquina virtual Java e bibliotecas de códigos reusáveis e
específico para TV Interativa. A máquina virtual é residente no
receptor e pode ser usadas por outros blocos funcionais (como o
DAVIC, HAVi e bibliotecas do Middleware). Java TV permite
níveis avançados de interatividade, com ou sem canal de
retorno, e associado ou não com fluxo de broadcast (vídeo e
áudio).
©2007 CETELI
5
Middlewares Proprietários
• OpenTV (OpenTV)
• MediaHighway (NDS)
• TV Pack (Microsoft)
©2007 CETELI
6
NDS
DASE
Liberate ATSC
MHP
Horizontal
Satellite DVB
Vertical
Market
Market
MHEG
Terrestrial OpenTV UK GEM
Cable OCAP
CableLabs
BML
MSTV Japan
Media
Highway
O mercado de TV Digital está atualmente migrando de soluções
©2007 CETELI
proprietárias em mercados verticais para padrões abertos em
7 mercados horizontais.
HAVi
Java JavaTV
©2007 CETELI MHP e sua relação com padrões abertos anteriores de ITV
8
MHP 1.1 MHP 1.1.1
OCAP 1.0 OCAP 2.0
ARIB B.23
©2007 CETELI As relações entre MHP, GEM e outros padrões
9
Padrões Abertos de Middleware
Ainda não temos um padrão de Middleware universal. Três
grupos tentam formalizar um padrão aberto:
• Multimedia Home Platform – MHP (Digital Video
Broadcasting – DVB/Europa)
• OpenCable Application Platform – OCAP e Advanced
Common Aplication Platform – ACAP (Advanced
Television Systems Committee – ATSC/Estados Unidos)
• Association of Radio Industries and Business – ARIB
(Integrated Services Digital Broadcasting – ISDB/Japão)
©2007 CETELI
10
Globally Executable MHP
GEM
GEM é o padrão especificado pelo MHP Umbrella Group
– MUG, um grupo formado por representantes de 3 áreas
©2007 CETELI
de padronização.
11
Controle de Funções
Específicas do STB
• Informações de Serviço;
• Dados do fluxo MPEG;
• Decodificação e Visualização de Mídia transmitida por
Broadcast;
• Visualização de Gráficos e Interfaces do Usuário de um
modo amigável na TV
• ...
©2007 CETELI
12
Aplicações Interativas
A principal característica de um sistema de TV Interativa é a
habilidade de executar aplicações que foram baixadas como
parte de um Broadcast Stream: isto é realmente o que faz a
diferença entre um sistema de TV interativa e uma TV digital
básica, que não faz nada mais do que a sua TV atual.
©2007 CETELI
13
Tópicos
• Gerenciamento de Recursos
• APIs Gráficas
• Tratamento de Entradas do Usuário
• Mostrando Texto
• APIs de Controle de Mídia (JMF)
• Vídeos e Gráficos
• Trabalhando com Som
• Selecionando um novo Serviço
• Acesso a Informação de Serviço
• Arquivos (DSMCC Object Carousel) e Persistência
©2007 CETELI
• Canal de Retorno
14 • Segurança e Acesso Condicionado
Aplicações Java
• Não são aplicações Java propriamente ditas;
• Têm diferenças de APIs;
• Têm restrições no que podem fazer;
• Ciclo de vida mais parecido com o do Applet:
– Controlado pelo Middleware e não pelo Usuário;
– Pode ser diferente do da JVM que o executa;
• Conhecidos como Xlets (Especificação JavaTV).
©2007 CETELI
15
javax.tv.xlet.Xlet
public interface Xlet {
public void initXlet(XletContext ctx)
throws XletStateChangeException;
public void startXlet()
throws XletStateChangeException;
public void pauseXlet();
public void destroyXlet(boolean unconditional)
throws XletStateChangeException;
©2007 CETELI }
16
Diagrama de Estado
©2007 CETELI
17
Xlet Contexts
©2007 CETELI
18
Xlet Contexts
©2007 CETELI
19
Do's e Don'ts
• Nunca chame o método System.exit();
• O método destroyXlet() deve matar todas as threads da
aplicação e cancelar todas as requisições assíncronas
pendentes;
• O método destroyXlet() e o método pauseXlet() devem
liberar contextos gráficos que a aplicação criou. O
middleware manterá referências a não ser que sejam
liberados propriamente com uma chamada
java.awt.Graphics.dispose();
• A aplicação deve lembrar que pode ser pausada ou destruída
a qualquer momento, e deve ter certeza de poder realizar sua
limpeza;
©2007 CETELI
20
Do's e Don'ts
• A aplicação deve respeitar as restrições que possam ser
impostas às APIs core do Java;
• Problemas com recursos são especialmente importantes em
um ambiente de TV digital, uma aplicação deve cooperar
com outras onde possível e, principalmente não deve prender
recursos escassos além do necessário;
• Sua aplicação deve ser confiável o quanto possível. Se um
método lançar uma excessão você deve tratála, pois esta é a
razão de serem lançadas.
©2007 CETELI
21
Brasil
©2007 CETELI
22
http://www.ginga.org.br
23
Gingaj
http://www.lavid.ufpb.br/
©2007 CETELI
24
Obrigado!
Perguntas???
©2007 CETELI
25