Académique Documents
Professionnel Documents
Culture Documents
Batuque TV Digital no
Facebook
Curtir
Curtir 5 7
http://www.batuque.tv/ginga-j/aplicacoes-java-para-tv-digital-interativa 20/12/2011
Aplicações Java para TV Digital Interativa | Batuque TV Digital Página 2 de 6
4 throws XletStateChangeException;
5
6 public void startXlet()
7 throws XletStateChangeException;
8
9 public void pauseXlet();
10 public void destroyXlet(boolean unconditional)
11 throws XletStateChangeException;
12 }
Na Figura 1 podemos observar o ciclo de vida de um Xlet. A mudança de estado acontece após a
execução de algum dos métodos descritos na Listagem 1.
Criando o Projeto
Antes de tudo, devemos criar um novo projeto no Eclipse. Para isso selecione a opção File > New >
Java Project no menu.
Na tela seguinte (Figura 3), é preciso selecionar a aba Libraries e adicionar os seguintes diretórios
externos (botão Add External Class Folder):
• /home/openginga/openginga/gingaj/classes
• /home/openginga/openginga/gingaj/jvm/build/linux-x86-suse/btclasses
• /home/openginga/openginga/gingaj/jvm/build/linux-x86-suse/basis_classes
Implementando a aplicação
http://www.batuque.tv/ginga-j/aplicacoes-java-para-tv-digital-interativa 20/12/2011
Aplicações Java para TV Digital Interativa | Batuque TV Digital Página 3 de 6
Na Listagem 2 abaixo apresentamos a classe que implementa o Xlet do Alô Mundo Java. São
exibidos somente os seus métodos para que possamos ter uma visão geral. Nas listagens seguintes
iremos detalhar cada um deles.
1 package tv.batuque; ?
2
3 public class AloMundoXlet implements Xlet, UserInputEventListener {
4
5 private static String BASEDIR = "applications/AloMundoJava/";
6
7 private XletContext context;
8 private DTVContainer dtvcontainer;
9 private Plane plane;
10 private PlaneSetup planeSetup;
11 private Form form;
12 private Player player;
13
14 private void configureColoredKeys()
15
16 private void configurePlane()
17
18 private void configureContainer()
19
20 private void startPlayer()
21
22 private void startMedia()
23
24 public void initXlet(XletContext xletContext) throws XletStateChangeException
25
26 public void pauseXlet()
27
28 public void startXlet() throws XletStateChangeException
29
30 public void destroyXlet(boolean bool) throws XletStateChangeException
31
32 public void userInputEventReceived(UserInputEvent inputEvent)
33 }
Podemos ver na Listagem 3 que o método initXlet (linhas 1 a 7) invoca os seguintes métodos para
configurar o sistema:
• configureColoredKeys (linhas 10 a 16): adiciona o nosso Xlet como um Listener para receber
notificações quando o usuário pressionar alguma tecla colorida do controle remoto;
• configurePlane (linhas 18 a 29): recupera o plano gráfico da tela para que possamos adicionar
os componentes gráficos, como imagens e botões;
• configureContainer (linhas 31 a 45): inicializa o componente Form (container responsável por
armazenar os demais componentes) e o adiciona ao plano gráfico.
http://www.batuque.tv/ginga-j/aplicacoes-java-para-tv-digital-interativa 20/12/2011
Aplicações Java para TV Digital Interativa | Batuque TV Digital Página 4 de 6
• startPlayer (linhas 8 a 25): configura e inicia o player do vídeo. Destaque para as linhas 17 a 22
que captura o controlador responsável pelo redimensionamento e altera a largura e a altura do
vídeo a ser apresentado.
• startMedia (linhas 27 a 42): utiliza o componente Label para carregar a imagem correspondente à
tecla verde do controle remoto. Aqui não utilizamos o componente Button porque não queremos a
interação pela tecla OK.
No nosso caso, devemos verificar se a tecla verde foi pressionada (linha 5) para interromper o vídeo
(linhas 18 a 20) e a imagem (linha 22) exibidos e iniciar a apresentação da frase “Alô Mundo!” (linhas 6
a 16 e 23).
http://www.batuque.tv/ginga-j/aplicacoes-java-para-tv-digital-interativa 20/12/2011
Aplicações Java para TV Digital Interativa | Batuque TV Digital Página 5 de 6
Listagem 5: Método para capturar interação do usuário com as teclas do controle remoto
Agora só precisamos inserir a nossa aplicação no arquivo applications.xml. Ainda não sabe como? O
nosso post Ginga-NCL e Ginga-J: Ambiente de Desenvolvimento explica detalhadamente a edição do
applications.xml.
Se você conseguiu acompanhar tudo corretamente até aqui, a execução da aplicação ficará
semelhante à Figura 4.
A aplicação completa está logo abaixo. Bom proveito! Não esqueça de deixar um comentário
sobre o exemplo.
Attachments
Hildebrando Trannin
4 Comments
Segundo o JAVADTV 1.3 (componente base para o Ginga-J) a engine Java do Ginga
deve ser capaz de executar _pelo menos_ duas aplicações em modo concorrente,
Reply
Reply
Eu estou querendo trabalhar este assunto no meu TCC. Você poderia mim informar
aonde posso obter mais informações e aonde eu poderia obter referências
bibliográficas para estudo?
Reply
Olá Anderson,
http://www.batuque.tv/ginga-j/aplicacoes-java-para-tv-digital-interativa 20/12/2011
Aplicações Java para TV Digital Interativa | Batuque TV Digital Página 6 de 6
Reply
Leave a Reply
Name *
Website
Post Comment
http://www.batuque.tv/ginga-j/aplicacoes-java-para-tv-digital-interativa 20/12/2011