Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvendo aplicacoes para TV Digital Interativa

2,004 views

Published on

Mini curso oferecido no FLISOL Campo Grande 2011.

Published in: Technology
  • Be the first to comment

Desenvolvendo aplicacoes para TV Digital Interativa

  1. 1. Desenvolvendo Aplicações para TV Digital InterativaDiemesleno Souza Carvalho Campo Grande - MS, 9 de Abril de 2011.
  2. 2. 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.
  3. 3. 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.
  4. 4. Nivelamento sobre DTVi● TV Analógica
  5. 5. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo.
  6. 6. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal.
  7. 7. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal.
  8. 8. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal.
  9. 9. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som.
  10. 10. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.
  11. 11. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata,
  12. 12. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata, Sem novidades,
  13. 13. Nivelamento sobre DTVi● TV Analógica –Telespectador passivo. –Mono-canal. –Baixa qualidade de som. –Baixa qualidade de imagem.Chata, Sem novidades, Repetitiva,
  14. 14. 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.
  15. 15. Nivelamento sobre DTVi● TV Digital
  16. 16. Nivelamento sobre DTVi● TV Digital –Telespectador passivo.
  17. 17. Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais.
  18. 18. Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD.
  19. 19. Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.
  20. 20. Nivelamento sobre DTVi● TV Digital –Telespectador passivo. –Múltiplos canais. –Qualidade de som de CD. –Imagem de alta definição.Diversidade de dispositivos,
  21. 21. 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,
  22. 22. 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,
  23. 23. 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.
  24. 24. Nivelamento sobre DTVi● TV Digital Interativa
  25. 25. Nivelamento sobre DTVi● TV Digital Interativa –Tudo que a TV Digital tem...
  26. 26. Nivelamento sobre DTVi● TV Digital Interativa –Telespectador ativo.
  27. 27. Nivelamento sobre DTVi● TV Digital Interativa –Telespectador ativo.
  28. 28. Nivelamento sobre DTVi● TV Digital Interativa –Novas formas de se utilizar a TV. (T-Commerce)
  29. 29. Nivelamento sobre DTVi● TV Digital Interativa –Novas formas de se utilizar a TV. (T-Learning)
  30. 30. Nivelamento sobre DTVi● TV Digital Interativa –Novas formas de se utilizar a TV. (T-GOV)
  31. 31. Entendendo as tecnologias envolvidas● Padrões de DTVi.
  32. 32. Entendendo as tecnologias envolvidas● Padrões de DTVi.
  33. 33. Entendendo as tecnologias envolvidas● Padrões de DTVi. E.U.A.
  34. 34. Entendendo as tecnologias envolvidas● Padrões de DTVi. E.U.A. - ACAP- X - ACAP-J
  35. 35. Entendendo as tecnologias envolvidas● Padrões de DTVi.
  36. 36. Entendendo as tecnologias envolvidas● Padrões de DTVi. Europa
  37. 37. Entendendo as tecnologias envolvidas● Padrões de DTVi. Europa - DVB-HTML - MHP
  38. 38. Entendendo as tecnologias envolvidas● Padrões de DTVi.
  39. 39. Entendendo as tecnologias envolvidas● Padrões de DTVi. Japão
  40. 40. Entendendo as tecnologias envolvidas● Padrões de DTVi. Japão - BML
  41. 41. Entendendo as tecnologias envolvidas● Padrões de DTVi.
  42. 42. Entendendo as tecnologias envolvidas● Padrões de DTVi. Brasil
  43. 43. Entendendo as tecnologias envolvidas● Padrões de DTVi. Brasil - Ginga-NCL - Ginga-J
  44. 44. Entendendo as tecnologias envolvidas● Interatividade.
  45. 45. Entendendo as tecnologias envolvidas● Interatividade.“Trata da possibilidade do telespectador receberuma mensagem e tratá-la da forma que desejar.”
  46. 46. Entendendo as tecnologias envolvidas● Possibilidades.
  47. 47. Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica.
  48. 48. Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica. –Serviços bancários.
  49. 49. Entendendo as tecnologias envolvidas● Possibilidades. –Votação eletrônica. –Serviços bancários. –Serviços de saúde.
  50. 50. 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.
  51. 51. 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.
  52. 52. Entendendo as tecnologias envolvidas● Graus de Interatividade.
  53. 53. 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.”
  54. 54. 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.”
  55. 55. Entendendo as tecnologias envolvidas● O Middleware.
  56. 56. 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.”
  57. 57. Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo.
  58. 58. Entendendo as tecnologias envolvidas● Requisitos para um Middleware completo. –Sincronismo de mídias.
  59. 59. 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.
  60. 60. 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.
  61. 61. 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.
  62. 62. 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.
  63. 63. Entendendo as tecnologias envolvidasDentre os Middlewares listados somente 1 é completo.
  64. 64. Entendendo as tecnologias envolvidasDentre os Middlewares listados somente 1 é completo.
  65. 65. Entendendo as tecnologias envolvidasArquitetura Ginga.
  66. 66. Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil.
  67. 67. Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora.
  68. 68. Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora. –Tecnologia recente.
  69. 69. Conhecendo os desafios do mercado● Cenário atual da Interatividade no Brasil. –Conservadora. –Tecnologia recente. –Sem um modelo de negócios definido.
  70. 70. 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.
  71. 71. Conhecendo os desafios do mercado● O mercado da TV Digital Interativa.
  72. 72. Montando o ambiente de desenvolvimento e teste O que precisamos para desenvolver aplicações para TV Digital Interativa?
  73. 73. Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.
  74. 74. Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.2. Eclipse + jdk + JavaTV + XletView.
  75. 75. Montando o ambiente de desenvolvimento e teste1. Ginga-NCL Player.2. Eclipse + jdk + JavaTV + XletView.3. Vmware Player.
  76. 76. 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.
  77. 77. 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
  78. 78. Criando e testando algumas aplicações de exemplo● Aplicação NCL Pura.
  79. 79. Criando e testando algumas aplicações de exemplo 1 - Abra o eclipse.
  80. 80. Criando e testando algumas aplicações de exemplo 2 - Crie um novo projeto do tipo ‘General/Project’ e dê o nome de NCL-Pura.
  81. 81. 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’.
  82. 82. 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’.
  83. 83. 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.
  84. 84. 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>
  85. 85. Criando e testando algumas aplicações de exemplo 7 - Logo abaico da ‘<regionBase>’, defina um descriptorBase.<descriptorBase> <descriptor id=“descVideo” region=“rgFundo”/></descriptorBase>
  86. 86. 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”/>
  87. 87. 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” />
  88. 88. Criando e testando algumas aplicações de exemplo Abra o Ginga-NCL Player e teste o programa.
  89. 89. Criando e testando algumas aplicações de exemplo● Aplicação Ginga-J
  90. 90. Criando e testando algumas aplicações de exemplo1 - Abra o Eclipse e crie um novo projeto Java com o nome de ‘Ginga-J’.
  91. 91. Criando e testando algumas aplicações de exemplo2 - Clique com o botão direito no projeto e selecione ‘Propriedades’.
  92. 92. Criando e testando algumas aplicações de exemplo3 - Clique em ‘Java Build Path’ e na aba ‘library’ clique no botão ‘Add External Jars’.
  93. 93. Criando e testando algumas aplicações de exemplo4 - Adicione o jar do Xletview.
  94. 94. Criando e testando algumas aplicações de exemplo5 - Adicione o jar do JavaTV.
  95. 95. Criando e testando algumas aplicações de exemplo6 - Clique no botão ‘Add External Class Folder’ e adicione o diretório ‘lib’ do JavaTV.
  96. 96. Criando e testando algumas aplicações de exemplo7 - Clique no botão ‘Ok’.
  97. 97. 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’.
  98. 98. 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’.
  99. 99. Criando e testando algumas aplicações de exemplo10 - Implemente a classe Xlet na nossa classe criada. public class FlisolCGXlet implements Xlet { }
  100. 100. Criando e testando algumas aplicações de exemplo11 - Clique no ‘problema’ para tratar a dependência. import javax.tv.xlet
  101. 101. Criando e testando algumas aplicações de exemplo12 - Clique no ‘problema’ para implementar os métodos do Xlet. destroyXlet() initXlet() pauseXlet() startXlet()
  102. 102. 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;
  103. 103. 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;
  104. 104. Criando e testando algumas aplicações de exemplo15 - Crie o método construtor da classe. public FlisolCGXlet() { //vazio }
  105. 105. Criando e testando algumas aplicações de exemplo16 - Configure o método destroyXlet.public void destroyXlet(boolean arg0) throws XletStateChangeException { this.contexto.notifyDestroyed();}
  106. 106. Criando e testando algumas aplicações de exemplo17 - Adicione o objeto ‘contexto’ no método initXlet.public void initXlet(XletContext contexto) throws XletStateChangeException {}
  107. 107. 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;}
  108. 108. 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());}
  109. 109. 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;
  110. 110. 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));
  111. 111. Criando e testando algumas aplicações de exemplo22 - Clique no ‘problema’ para tratar as dependências. import java.awt.Color; import java.awt.Font;
  112. 112. 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);
  113. 113. 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));
  114. 114. 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);
  115. 115. Criando e testando algumas aplicações de exemplo26 - No método ‘startXlet’ adicione:public startXlet() throws XletStateChangeException { this.scene.setVisible(true);}
  116. 116. Criando e testando algumas aplicações de exemplo27 - Clique no menu ‘Project->Clean’ para compilar nossa aplicação.
  117. 117. Criando e testando algumas aplicações de exemplo28 - Abra o prompt de comando e inicie o XletView. java -jar xletview.jar
  118. 118. Criando e testando algumas aplicações de exemplo29 - Clique no menu ‘Applications->Manage Applications’.
  119. 119. Criando e testando algumas aplicações de exemplo30 - Clique em ‘Default Group’ e no menu lateral clique em ‘New Application’.
  120. 120. 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
  121. 121. Criando e testando algumas aplicações de exemplo32 - Clique em ‘Save & Close’.
  122. 122. Criando e testando algumas aplicações de exemplo33 - Volte no menu ‘Applications’ e clique na aplicação ‘FlisolCG’ criada.
  123. 123. 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.
  124. 124. BônusTestando algumas aplicações da comunidade.
  125. 125. Conclusão● Mercado altamente promissor.● Diversos nichos a serem explorados.● Hora de se capacitar.● Levar a ideia para as universidades.● Promover eventos.● Se divertir.
  126. 126. Dúvidas
  127. 127. Obrigado● Contato: – www.diemesleno.com.br – diemesleno@gmail.com – @diemesleno

×