Desenvolvendo aplicacoes para TV Digital Interativa
Upcoming SlideShare
Loading in...5
×
 

Desenvolvendo aplicacoes para TV Digital Interativa

on

  • 1,983 views

Mini curso oferecido no FLISOL Campo Grande 2011.

Mini curso oferecido no FLISOL Campo Grande 2011.

Statistics

Views

Total Views
1,983
Views on SlideShare
1,517
Embed Views
466

Actions

Likes
0
Downloads
52
Comments
0

4 Embeds 466

http://www.diemesleno.com.br 463
http://webcache.googleusercontent.com 1
http://www.linkedin.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Desenvolvendo aplicacoes para TV Digital Interativa Desenvolvendo aplicacoes para TV Digital Interativa Presentation Transcript

  • Desenvolvendo Aplicações para TV Digital InterativaDiemesleno Souza Carvalho Campo Grande - MS, 9 de Abril de 2011.
  • Sobre o instrutor● Tecnólogo em Sistemas para Internet.● Pós-graduando MBA em Gestão de Projetos.● Trabalho com T.I. desde 1998.● Palestrante em diversos eventos regionais.● Ex-estagiário no TRE-MS e Dataprev-MS.● 2 anos na Sefaz/MS como Analista/Programador.● Analista de Sistemas Pleno na InnfoMaster.
  • Tópicos Abordados● Nivelamento sobre DTVi.● Entender as tecnologias envolvidas.● Conhecer os desafios do mercado.● Montar o ambiente de desenvolvimento e teste.● Criar e testar algumas aplicações de exemplo.
  • Nivelamento sobre DTVi● TV Analógica
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo.
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal.
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal.
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal.
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som.
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata,
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata, Sem novidades,
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata, Sem novidades, Repetitiva,
  • Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata, Sem novidades, Repetitiva, Muitas vezes apelativa.
  • Nivelamento sobre DTVi● TV Digital
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo.
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais.
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD.
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.Diversidade de dispositivos,
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.Diversidade de dispositivos, Visualizar informações sobre oscanais e programas,
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.Diversidade de dispositivos, Visualizar informações sobre oscanais e programas, Equipamento caro,
  • Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.Diversidade de dispositivos, Visualizar informações sobre oscanais e programas, Equipamento caro, Poucas emissoras.
  • Nivelamento sobre DTVi● TV Digital Interativa
  • Nivelamento sobre DTVi● TV Digital Interativa –Tudo que a TV Digital tem...
  • Nivelamento sobre DTVi● TV Digital Interativa –Telespectador ativo.
  • Nivelamento sobre DTVi● TV Digital Interativa –Telespectador ativo.
  • Nivelamento sobre DTVi● TV Digital Interativa –Novas formas de se utilizar a TV. (T-Commerce)
  • Nivelamento sobre DTVi● TV Digital Interativa –Novas formas de se utilizar a TV. (T-Learning)
  • Nivelamento sobre DTVi● TV Digital Interativa –Novas formas de se utilizar a TV. (T-GOV)
  • Entendendo as tecnologias envolvidas● Padrões de DTVi.
  • Entendendo as tecnologias envolvidas● Padrões de DTVi.
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. E.U.A.
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. E.U.A. - ACAP- X - ACAP-J
  • Entendendo as tecnologias envolvidas● Padrões de DTVi.
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. Europa
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. Europa - DVB-HTML - MHP
  • Entendendo as tecnologias envolvidas● Padrões de DTVi.
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. Japão
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. Japão - BML
  • Entendendo as tecnologias envolvidas● Padrões de DTVi.
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. Brasil
  • Entendendo as tecnologias envolvidas● Padrões de DTVi. Brasil - Ginga-NCL - Ginga-J
  • Entendendo as tecnologias envolvidas● Interatividade.
  • Entendendo as tecnologias envolvidas● Interatividade.“Trata da possibilidade do telespectador receberuma mensagem e tratá-la da forma que desejar.”
  • Entendendo as tecnologias envolvidas● Possibilidades.
  • Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica.
  • Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica. –Serviços bancários.
  • Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica. –Serviços bancários. –Serviços de saúde.
  • Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica. –Serviços bancários. –Serviços de saúde. –Serviços de educação a distância.
  • Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica. –Serviços bancários. –Serviços de saúde. –Serviços de educação a distância. –Compras.
  • Entendendo as tecnologias envolvidas● Graus de Interatividade.
  • Entendendo as tecnologias envolvidas● Graus de Interatividade. –Nível 1 “A interatividade é apenas com o aparelho de TV, limitando-se a fazer escolhas. O usuário não interfere na programação.”
  • Entendendo as tecnologias envolvidas● Graus de Interatividade. –Nível 2 “O usuário interage com a programação, que pode ser alterada com o simples uso do controle remoto. Neste nível seria possível escolher, por exemplo, o final de uma novela.”
  • Entendendo as tecnologias envolvidas● O Middleware.
  • Entendendo as tecnologias envolvidas● O Middleware. “Camada de software capaz de prover o suporte necessário para o desenvolvimento de aplicações para TV Digital e também tornar uma aplicação de TV capaz de ser executada em qualquer plataforma, independente de Hardware e Sistema Operacional.”
  • Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo.
  • Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo. –Sincronismo de mídias.
  • Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo. –Sincronismo de mídias. –Definição de relacionamentos de sincronismo espacial e temporal separada da definição do conteúdo dos objetos de mídia relacionais.
  • Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo. –Sincronismo de mídias. –Definição de relacionamentos de sincronismo espacial e temporal separada da definição do conteúdo dos objetos de mídia relacionais. –Adaptação de conteúdo e da forma que o conteúdo é exibido.
  • Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo. –Sincronismo de mídias. –Definição de relacionamentos de sincronismo espacial e temporal separada da definição do conteúdo dos objetos de mídia relacionais. –Adaptação de conteúdo e da forma que o conteúdo é exibido. –Múltiplos dispositivos de exibição.
  • Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo. –Sincronismo de mídias. –Definição de relacionamentos de sincronismo espacial e temporal separada da definição do conteúdo dos objetos de mídia relacionais. –Adaptação de conteúdo e da forma que o conteúdo é exibido. –Múltiplos dispositivos de exibição. –Permitir edição ao vivo.
  • Entendendo as tecnologias envolvidasDentre os Middlewares listados somente 1 é completo.
  • Entendendo as tecnologias envolvidasDentre os Middlewares listados somente 1 é completo.
  • Entendendo as tecnologias envolvidasArquitetura Ginga.
  • Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil.
  • Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora.
  • Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora. –Tecnologia recente.
  • Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora. –Tecnologia recente. –Sem um modelo de negócios definido.
  • Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora. –Tecnologia recente. –Sem um modelo de negócios definido. –Sem uma maturidade ideal.
  • Conhecendo os desafios do mercado● O mercado da TV Digital Interativa.
  • Montando o ambiente de desenvolvimento e teste O que precisamos para desenvolver aplicações para TV Digital Interativa?
  • Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.
  • Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.2. Eclipse + jdk + JavaTV + XletView.
  • Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.2. Eclipse + jdk + JavaTV + XletView.3. Vmware Player.
  • Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.2. Eclipse + jdk + JavaTV + XletView.3. Vmware Player.4. Imagem do S.O. do Set Top Box Ginga.
  • Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.2. Eclipse + jdk + JavaTV + XletView.3. Vmware Player.4. Imagem do S.O. do Set Top Box Ginga.5. WinSCP + Putty
  • Criando e testando algumas aplicações de exemplo● Aplicação NCL Pura.
  • Criando e testando algumas aplicações de exemplo 1 - Abra o eclipse.
  • Criando e testando algumas aplicações de exemplo 2 - Crie um novo projeto do tipo ‘General/Project’ e dê o nome de NCL-Pura.
  • Criando e testando algumas aplicações de exemplo 3 - Clique com o botão direito no projeto e crie um novo diretório chamado ‘media’.
  • Criando e testando algumas aplicações de exemplo 4 - Clique com o botão direito no diretório ‘media’ e selecione a opção ‘import->File System’ e selecione o arquivo ‘video.mp4’.
  • Criando e testando algumas aplicações de exemplo 5 - Clique com o botão direito no projeto e crie um novo arquivo do tipo ‘NCL Document’ e digite ‘main’ para o id do arquivo.
  • Criando e testando algumas aplicações de exemplo 6 - Dentro do cabeçalho ‘<head>’, defina uma regionBase.<regionBase> <region id=“rgFundo” width=“100%” height=“100%”/></regionBase>
  • Criando e testando algumas aplicações de exemplo 7 - Logo abaico da ‘<regionBase>’, defina um descriptorBase.<descriptorBase> <descriptor id=“descVideo” region=“rgFundo”/></descriptorBase>
  • Criando e testando algumas aplicações de exemplo 8 - Dentro do corpo do programa ‘<body>’, indique a mídia que aparecerá na tela.<media id=“video” src=“media/video.mp4” descriptor=“descVideo”/>
  • Criando e testando algumas aplicações de exemplo 9 - Logo abaixo de ‘<media>’, crie um ‘<port>’ indicando a mídia iniciará no programa.<port id=“pEntrada” component=“video” />
  • Criando e testando algumas aplicações de exemplo Abra o Ginga-NCL Player e teste o programa.
  • Criando e testando algumas aplicações de exemplo● Aplicação Ginga-J
  • Criando e testando algumas aplicações de exemplo1 - Abra o Eclipse e crie um novo projeto Java com o nome de ‘Ginga-J’.
  • Criando e testando algumas aplicações de exemplo2 - Clique com o botão direito no projeto e selecione ‘Propriedades’.
  • Criando e testando algumas aplicações de exemplo3 - Clique em ‘Java Build Path’ e na aba ‘library’ clique no botão ‘Add External Jars’.
  • Criando e testando algumas aplicações de exemplo4 - Adicione o jar do Xletview.
  • Criando e testando algumas aplicações de exemplo5 - Adicione o jar do JavaTV.
  • Criando e testando algumas aplicações de exemplo6 - Clique no botão ‘Add External Class Folder’ e adicione o diretório ‘lib’ do JavaTV.
  • Criando e testando algumas aplicações de exemplo7 - Clique no botão ‘Ok’.
  • Criando e testando algumas aplicações de exemplo8 - Clique com o botão direito no projeto e crie um novo pacote com o nome ‘br.com.flisolcg’.
  • Criando e testando algumas aplicações de exemplo9 - No pacote criado clique com o botão direito e crie uma nova classe com o nome ‘FlisolCGXlet’.
  • Criando e testando algumas aplicações de exemplo10 - Implemente a classe Xlet na nossa classe criada. public class FlisolCGXlet implements Xlet { }
  • Criando e testando algumas aplicações de exemplo11 - Clique no ‘problema’ para tratar a dependência. import javax.tv.xlet
  • Criando e testando algumas aplicações de exemplo12 - Clique no ‘problema’ para implementar os métodos do Xlet. destroyXlet() initXlet() pauseXlet() startXlet()
  • Criando e testando algumas aplicações de exemplo13 - Dentro da classe, declarar os objetos que serão utilizados. private XletContext contexto; private HStaticText labelAcima; private HStaticText labelMeio; private HStaticText labelAbaixo; private HScene scene;
  • Criando e testando algumas aplicações de exemplo14 - Clique no ‘problema’ para tratar as dependências. import org.havi.ui.HScene; import org.havi.ui.HStaticText;
  • Criando e testando algumas aplicações de exemplo15 - Crie o método construtor da classe. public FlisolCGXlet() { //vazio }
  • Criando e testando algumas aplicações de exemplo16 - Configure o método destroyXlet.public void destroyXlet(boolean arg0) throws XletStateChangeException { this.contexto.notifyDestroyed();}
  • Criando e testando algumas aplicações de exemplo17 - Adicione o objeto ‘contexto’ no método initXlet.public void initXlet(XletContext contexto) throws XletStateChangeException {}
  • Criando e testando algumas aplicações de exemplo18 - Ainda dentro do método initXlet adicione:public void initXlet(XletContext contexto) throws XletStateChangeException { this.contexto = contexto;}
  • Criando e testando algumas aplicações de exemplo19 - Ainda dentro do método initXlet adicione:public void initXlet(XletContext contexto) throws XletStateChangeException { this.contexto = contexto; this.scene = HSceneFactory.getInstance() .getFullScreenScene(HScreen.getDefaultHScreen() .getDefaultHGraphicsDevice());}
  • Criando e testando algumas aplicações de exemplo20 - Clique no ‘problema’ para tratar as dependências. import org.havi.ui.HScreen; import org.havi.ui.HSceneFactory;
  • Criando e testando algumas aplicações de exemplo21 - Ainda dentro do método ‘initXlet’ adicione: this.labelAcima = new HStaticText(“FlisolCG 2011"); this.labelAcima.setFont(new Font("Arial", Font.BOLD, 90)); this.labelAcima.setBounds(10, 10, 700, 200); this.labelAcima.setForeground(Color.white); this.labelAcima.setBackground(new Color(0,100,0));
  • Criando e testando algumas aplicações de exemplo22 - Clique no ‘problema’ para tratar as dependências. import java.awt.Color; import java.awt.Font;
  • Criando e testando algumas aplicações de exemplo23 - Ainda dentro do método ‘initXlet’ adicione: this.labelMeio = new HStaticText("TV Digital se faz com Ginga!"); this.labelMeio.setFont(new Font("Arial", Font.BOLD, 40)); this.labelMeio.setBounds(10, 200, 700, 200); this.labelMeio.setForeground(new Color(0,0,139)); this.labelMeio.setBackground(Color.white);
  • Criando e testando algumas aplicações de exemplo24 - Ainda dentro do método ‘initXlet’ adicione: this.labelAbaixo = new HStaticText("www.gingams.com.br"); this.labelAbaixo.setFont(new Font("Arial", Font.BOLD, 60)); this.labelAbaixo.setBounds(10, 370, 700, 200); this.labelAbaixo.setForeground(Color.yellow); this.labelAbaixo.setBackground(new Color(50,153,204));
  • Criando e testando algumas aplicações de exemplo25 - Ainda dentro do método ‘initXlet’ adicione: this.scene.add(this.labelAcima); this.scene.add(this.labelMeio); this.scene.add(this.labelAbaixo);
  • Criando e testando algumas aplicações de exemplo26 - No método ‘startXlet’ adicione:public startXlet() throws XletStateChangeException { this.scene.setVisible(true);}
  • Criando e testando algumas aplicações de exemplo27 - Clique no menu ‘Project->Clean’ para compilar nossa aplicação.
  • Criando e testando algumas aplicações de exemplo28 - Abra o prompt de comando e inicie o XletView. java -jar xletview.jar
  • Criando e testando algumas aplicações de exemplo29 - Clique no menu ‘Applications->Manage Applications’.
  • Criando e testando algumas aplicações de exemplo30 - Clique em ‘Default Group’ e no menu lateral clique em ‘New Application’.
  • Criando e testando algumas aplicações de exemplo31 - Clique em ‘new app 01’ e no formulário especifique os seguintes dados. Name: FlisolCG Path: Pasta ‘bin’ do nosso projeto Xlet: br.com.flisolcg.FlisolCGXlet
  • Criando e testando algumas aplicações de exemplo32 - Clique em ‘Save & Close’.
  • Criando e testando algumas aplicações de exemplo33 - Volte no menu ‘Applications’ e clique na aplicação ‘FlisolCG’ criada.
  • Criando e testando algumas aplicações de exemplo34 - Se estiver tudo ok a aplicação comecará a rodar, se algo estiver errado verifique o console da aplicação.
  • BônusTestando algumas aplicações da comunidade.
  • Conclusão● Mercado altamente promissor.● Diversos nichos a serem explorados.● Hora de se capacitar.● Levar a ideia para as universidades.● Promover eventos.● Se divertir.
  • Dúvidas
  • Obrigado● Contato: – www.diemesleno.com.br – diemesleno@gmail.com – @diemesleno