Desenvolvendo aplicacoes para TV Digital Interativa

1,941 views

Published on

Mini curso oferecido no FLISOL Campo Grande 2011.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,941
On SlideShare
0
From Embeds
0
Number of Embeds
476
Actions
Shares
0
Downloads
58
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×