desenvolvimento para tv digital interativa [ dia 2]

108
GingaMS Dia 2 Desenvolvimento para TV Digital Interativa Diemesleno Souza Carvalho Campo Grande - MS

Upload: diemesleno-souza-carvalho

Post on 13-Jan-2015

1.253 views

Category:

Documents


2 download

DESCRIPTION

Slides do segundo dia do mini curso de Desenvolvimento para TV Digital Interativa oferecido pelo grupo GingaMS.

TRANSCRIPT

GingaMSDia 2

Desenvolvimento para TV Digital Interativa

Diemesleno Souza Carvalho

Campo Grande - MS

Sobre o palestrante.

• Tecnólogo em Sistemas para Internet.

• Pós-graduando MBA em Gestão de Projetos.

• Trabalho com T.I. Desde 1998.• Trabalho com T.I. Desde 1998.

• Palestrante em diversos eventos regionais.

• Ex-estagiário TRE/MS e Dataprev/MS.

• 2 anos na Sefaz/MS Analista/Programador.

• Analista de Sistemas Pleno na Sanesul/MS.

Sobre o GingaMS.

• Grupo novo, mas com grandes perspectivas.

• Estimular e difundir as tecnologias TVDi.

• Tendências do mercado de TVDi.• Tendências do mercado de TVDi.

• Capacitar novos membros gradativamente.

• Incentivar produções independentes.

• Promover eventos e divulgação do grupo.

Sobre o Mini-curso.

• Nivelamento sobre TVDi.

• Entender as tecnologias envolvidas.

• Desafios do mercado.• Desafios do mercado.

• Principais dificuldades hoje.

• Montar ambiente de desenvolvimento e teste.

• Criar algumas aplicações de exemplo.

Segundo Dia

• O Mercado de TV Digital Interativa.

• O Middleware.

• Arquitetura Ginga.

• Ferramentas de Desenvolvimento e Teste.• Ferramentas de Desenvolvimento e Teste.

• Conceitos sobre NCL.

• Conceitos sobre JavaTV e Xlet.

• Exemplos de Aplicações.

O Mercado de TV Digital Interativa

« A possibilidade de desenvolver aplicações computacionais que executam sobre um computacionais que executam sobre um dispositivo físico permite o surgimento de uma vasta gama de novos serviços.»

O Mercado de TV Digital Interativa

« A possibilidade é tamanha que fica difícil imaginar onde podemos chegar.» imaginar onde podemos chegar.»

O Mercado de TV Digital Interativa

• EPG - Eletronic Programing Guide

« Guia eletrônico de programação. Possibilita a « Guia eletrônico de programação. Possibilita a navegação pelas múltimplas possibilidades de programação que o telespectador encontrará.»

O Mercado de TV Digital Interativa

• EPG - Eletronic Programing Guide

O Mercado de TV Digital Interativa

• T-GOV - Government TV

« Representa a possibilidade de realizar « Representa a possibilidade de realizar programas de governo via transmissão televisiva, tornando possível a identificação da demanda proveniente do cidadão. »

O Mercado de TV Digital Interativa

• T-GOV - Government TV

O Mercado de TV Digital Interativa

• T-Commerce

« Representa as possibilidades de se explorar « Representa as possibilidades de se explorar atividades comerciais de varejo via transmissão televisiva. Torna possível a conclusão de uma transação comercial por meio da operação do controle remoto. »

O Mercado de TV Digital Interativa

• T-Commerce

O Mercado de TV Digital Interativa

• T-Learning

« Estes serviços comportam aplicações de Ensino a « Estes serviços comportam aplicações de Ensino a Distância e de Suporte ao Ensino e Educação, independente do grau ou série que se aplicam.»

O Mercado de TV Digital Interativa

• T-Learning

O Mercado de TV Digital Interativa

• T-Health - Serviços de Saúde pela TV

« Aplicações de interesse comunitário que podem minimizar as imensas filas em postos e instituições de minimizar as imensas filas em postos e instituições de saúde, com programas que informem os serviços oferecidos pelos hospitais e postos, marcações de consultas, programas de imunização, campanhas de esclarecimentos e educação em saúde coletiva. »

« Podem ainda ser direcionados à formação a distância de profissionais médicos e para-médicos, utilizando-se programas interativos ou distribuição de vídeos.»

O Mercado de TV Digital Interativa

• T-Health - Serviços de Saúde pela TV

O Mercado de TV Digital Interativa

• T-Banking

« É o mesmo homebanking com o diferencial do « É o mesmo homebanking com o diferencial do telespectador poder acessar informações de sua conta ou contratar serviços com o controle remoto da TV. »

O Mercado de TV Digital Interativa

• T-Banking

O Mercado de TV Digital Interativa

T-MAIL.

T-Sale.

TV Social ou TV Comunidade (Niches TV).

Games.

Programas não-lineares.

O Mercado de TV Digital Interativa

O Middleware

« Camada de software capaz de prover o suporte necessário para o desenvolvimento de 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. »

O Middleware

Requisitos:

1. Sincronismo de mídias.2. Definição de relacionamentos de sincronismo 2. Definição de relacionamentos de sincronismo

espacial e temporal separada da definição do conteúdo dos objetos de mídia relacionais.

3. Adaptação de conteúdo e da forma como o conteúdo é exibido.

4. Múltimplos dispositivos de exibição.5. Edição ao vivo.

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

Apenas 1Apenas 1

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

O Middleware

Dos padrões de TV Digital Interativa no mundo, algum atende todos os 5 requisitos?

Arquitetura Ginga

1. Common Core.

2. Ginga-NCL.

3. Ginga-J.3. Ginga-J.

Ferramentas de Desenvolvimento e Teste

O que precisamos para O que precisamos para desenvolver para TV

Digital Interativa?

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

« 1. Emulador simples para rodar aplicações « 1. Emulador simples para rodar aplicações NCL Puras. »

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

« 2. Para desenvolver JavaTV no Eclipse. »

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player

2. Eclipse + jdk + JavaTV + XletView.

3. Vmware Player.3. Vmware Player.

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

3. Vmware Player.3. Vmware Player.

« 3. Para emular o Set-top-Box com Ginga.»

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

3. Vmware Player.3. Vmware Player.

4. Imagem S.O. com Ginga configurado.

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

3. Vmware Player.3. Vmware Player.

4. Imagem S.O. com Ginga configurado.

« 4. Para rodar no Wmware Player.»

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

3. Vmware Player.3. Vmware Player.

4. Imagem S.O. com Ginga configurado.

5. WinSCP + Putty.

Ferramentas de Desenvolvimento e Teste

1. Ginga-NCL Player.

2. Eclipse + jdk + JavaTV + XletView.

3. Vmware Player.3. Vmware Player.

4. Imagem S.O. com Ginga configurado.

5. WinSCP + Putty.

« 5. Para copiar as aplicações para o Ginga e acessar o S.O. via ssh.»

Ferramentas de Desenvolvimento e Teste

Bônus

Plugin NCL para eclipse.Plugin NCL para eclipse.

Ferramentas de Desenvolvimento e Teste

Plugin NCL para eclipse.

Vá no menu->Help->Install New SoftwareVá no menu->Help->Install New Software

Ferramentas de Desenvolvimento e Teste

Plugin NCL para eclipse.

Clique em ‘Add’Clique em ‘Add’

Nome: NCL-Eclipse

Location: http://www.laws.deinf.ufma.br/ncleclipse/update

Ferramentas de Desenvolvimento e Teste

Plugin NCL para eclipse.

Selecione o NCL-Eclipse na lista.Selecione o NCL-Eclipse na lista.

Desmarque a opção: ‘Group items by category’

Clique em ‘finish’

Ferramentas de Desenvolvimento e Teste

Plugin NCL para eclipse.

Após reiniciar o Eclipse já é possível criar Após reiniciar o Eclipse já é possível criar projetos NCL e até importar exemplos da comunidade.

Ferramentas de Desenvolvimento e Teste

Bônus

Plugin Lua para Eclipse.Plugin Lua para Eclipse.

Ferramentas de Desenvolvimento e Teste

Plugin Lua para eclipse.

Vá no menu->Help->Install New SoftwareVá no menu->Help->Install New Software

Ferramentas de Desenvolvimento e Teste

Plugin Lua para eclipse.

Clique em ‘Add’Clique em ‘Add’

Nome: Lua-Eclipse

Location: http://luaeclipse.luaforge.net/preview/update-site/win32.win32.x86

Ferramentas de Desenvolvimento e Teste

Plugin Lua para eclipse.

Selecione o plugin.Selecione o plugin.

Clique em ‘Finish’.

Nested Context Model

Conceitos sobre NCL

Conceitos sobre NCL

NCL - Nested Context Model

« Linguagem de aplicaçãp XML que permite aos « Linguagem de aplicaçãp XML que permite aos autores criarem apresentações multimidia interativas.»

Conceitos sobre NCL

Estrutura básica de um arquivo NCL

« A exemplo da linguagem HTML, a linguagem « A exemplo da linguagem HTML, a linguagem NCL caracteriza-se por ser uma linguagem de marcação, possuindo elementos (tags) padrões.»

Conceitos sobre NCL

Cabeçalho de um arquivo NCL

<?xml version="1.0" encoding="ISO-8859-1"><?xml version="1.0" encoding="ISO-8859-1">

<ncl id="gingaMS">

Conceitos sobre NCL

Cabeçalho de um programa NCL

<head> <head>

</head>

« Assim como no HTML. »

Conceitos sobre NCL

Dentro do cabeçalho de um programa NCL

<head> <head>

<regionBase>

...

</regionBase>

...

Conceitos sobre NCL

regionBase

« Aqui são delimitadas as regiões das « Aqui são delimitadas as regiões das apresentações na tela. Nestas regiões são apresentadas as midias.»

Conceitos sobre NCL

regionBase

<head><head>

<regionBase>

<region width="1080" height="1920" id="rgTV">

<region left="448" top="156" width="1024" height="300" id="rgVideo">

</region>

</regionBase>

....

Conceitos sobre NCL

regionBase - Notas exemplo

1 - Duas regiões - "rgTV" e "rgVideo".1 - Duas regiões - "rgTV" e "rgVideo".

2 - wigth e height - Largura e altura em pixels.

3 - id - Indentificador único da região.

4 - left e top - Posição da região na tela em relação a esquerda e ao topo.

Conceitos sobre NCL

descriptorBase

<head>

<regionBase>...</regionBase>

<descriptorBase>

.....

</descriptorBase>

Conceitos sobre NCL

descriptorBase

« Definem como e onde as mídias serão « Definem como e onde as mídias serão apresentadas.»

Conceitos sobre NCL

descriptorBase

<head>

<regionBase>...</regionBase>

<descriptorBase>

<descriptor region="rgVideo" id="dVideo"/>

</descriptorBase>

Conceitos sobre NCL

descriptorBase - Notas do exemplo

1 - id="dVideo" - Referência única1 - id="dVideo" - Referência única

2 - region="rgVideo" - Referência a uma região já criada.

Conceitos sobre NCL

Corpo de um documento NCL

<head>

<regionBase>

...

</regionBase>

<descriptorBase>

...

</descriptorBase>

</head>

<body>

Conceitos sobre NCL

Corpo de um documento NCL

<body>

...

</body>

« No corpo de um programa, são inseridos os nós, portas, elos e âncoras. »

Conceitos sobre NCL

Corpo de um documento NCL - Nós

« Os nós são referências para as mídias, e podem ser de 2 tipos: « Os nós são referências para as mídias, e podem ser de 2 tipos: Nó de Conteúdo, ou Nó de Composição. »

Conceitos sobre NCL

Nó de Conteúdo (Mídia)

« Associado a um tipo de mídia (txt, html, jpeg, mpeg, etc). « Associado a um tipo de mídia (txt, html, jpeg, mpeg, etc). Sempre iniciado com a tag <media>. »

<media type="video/mpeg" id="video1" src="video1.mpeg" descriptor="dVideo"/>

Conceitos sobre NCL

Nó de Conteúdo - Notas do exemplo

1 - src - Referencia ao caminho do objeto.1 - src - Referencia ao caminho do objeto.

2 - type - Referencia o tipo do objeto.

3 - descriptor - Referencia ao local da tela que o objeto ficará.

Conceitos sobre NCL

Nó de Composição (contexto)

Portas - Representada pela tag <port>, é um Portas - Representada pela tag <port>, é um ponto de interface de um contexto.

<port id="pInicio" component="suport"/>

Conceitos sobre NCL

Nó de Composição (contexto)

Elos - Funcionam semelhantes a um link de Elos - Funcionam semelhantes a um link de arquivo HTML e sua tag é <link>.

<link xconnector="connectors#onBegin1StartN" id="Titulo1Inicia">

<bind role="onBegin" component="suporte"/>

<bind role="start" component="titulo"/>

</link>

Conceitos sobre NCL

Nó de Composição (contexto)

Âncoras - São pontos de entrada para os nós de Âncoras - São pontos de entrada para os nós de mídia ou de contexto, e são divididas em Âncoras de Conteúdo e Âncoras de Atributo.

Conceitos sobre NCL

Âncora de Conteúdo - (Content Anchor)

« Define um segmento de mídia (intervalo de « Define um segmento de mídia (intervalo de tempo e/ou região no espaço) que poderá ser utilizado como ponto de ativação de elos. Utilizam a tag <area> dentro da tag <media>.»

Conceitos sobre NCL

Âncora de Conteúdo - (Content Anchor)

<media type="vídeo/mpeg" id="video1" src="video1.mpg" descriptor="dVideo"> <media type="vídeo/mpeg" id="video1" src="video1.mpg" descriptor="dVideo">

<area id="aVideoLegenda01" begin="5s" end="9s"/>

<area id="aVideoLegenda02" begin="10s" end="14s"/>

<area id="aVideoLegenda03" begin="15s" end="19s"/>

</media>

Conceitos sobre NCL

Âncora de Atributo - (Attribut Anchor)

« Se refere a propriedades de um nó que « Se refere a propriedades de um nó que podem ser manipulados pelos elos. Por exemplo, volume de audio de um nó de audio ou vídeo dentre outros. Utilizam a tag <property> dentro da tag <media>. »

Conceitos sobre NCL

Âncora de Atributo - (Attribut Anchor)

<media type="video" id="video1" src="media/video1.mpg" descriptor="dVideo"> <media type="video" id="video1" src="media/video1.mpg" descriptor="dVideo">

<property id="top" name="top"/>

<property id="left" name="left"/>

<property id="width" name="width"/>

<property id="height" name="height"/>

<area id="aVideo1Imagem1" begin="3s" end="8s"/>

</media>

Estrutura Básica de um Arquivo NCL

<?xml version="1.0" encoding="ISO-8859-1"?>

<ncl id="exemplo1">

<head>

<regionBase>

<region width="1080" height="1920" id="rgTV">

<region left="448" top="156" width="1024" height="300" id="rgVideo"/> <region left="448" top="156" width="1024" height="300" id="rgVideo"/>

</region>

</regionBase>

<descriptorBase>

<descriptor region="rgVideo" id="dVideo"/>

</descriptorBase>

</head>

<body>

<port component="video" id="pInicio"/>

<media descriptor="dVideo" src="video1.mpg" type="video/mpeg" id="video"/>

</body>

</ncl>

Conceitos sobre NCL

Indente seu código!Indente seu código!

Conceitos sobre JavaTV e Xlet

Java!

Conceitos sobre JavaTV e Xlet

Java para o que você quiser! Java para o que você quiser!

Conceitos sobre JavaTV e Xlet

Alta granularidade! Alta granularidade!

Conceitos sobre JavaTV e Xlet

Java para servidores.

Java para sistemas.

Java para sites.Java para sites.

Java para mobiles.

Java para geladeiras, carros....

Java para TV.

Conceitos sobre JavaTV e Xlet

Conceitos sobre JavaTV e Xlet

« API completa para TV Digital, sendo um pacote « API completa para TV Digital, sendo um pacote opcional para a plataforma j2ME. »

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

• Acesso condicional.

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

• Acesso condicional.

• Acesso aos dados nos canais de transmissão.• Acesso aos dados nos canais de transmissão.

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

• Acesso condicional.

• Acesso aos dados nos canais de transmissão.• Acesso aos dados nos canais de transmissão.

• Acesso aos dados do Service Information.

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

• Acesso condicional.

• Acesso aos dados nos canais de transmissão.• Acesso aos dados nos canais de transmissão.

• Acesso aos dados do Service Information.

• Controle do Sintonizador de Canais.

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

• Acesso condicional.

• Acesso aos dados nos canais de transmissão.• Acesso aos dados nos canais de transmissão.

• Acesso aos dados do Service Information.

• Controle do Sintonizador de Canais.

• Sincronização de mídias.

Conceitos sobre JavaTV e Xlet

• Fluxo de áudio e de vídeo.

• Acesso condicional.

• Acesso aos dados nos canais de transmissão.• Acesso aos dados nos canais de transmissão.

• Acesso aos dados do Service Information.

• Controle do Sintonizador de Canais.

• Sincronização de mídias.

• Gerenciamento do Cliclo de Vida das Aplicações.

Conceitos sobre JavaTV e Xlet

« Os programas em JavaTV são chamados de Xlet.»

Conceitos sobre JavaTV e Xlet

Conceitos sobre JavaTV e Xlet

« O Xlet possui um ciclo de vida assim como os applets java. Mas no caso do Xlet eles podem ser pausados java. Mas no caso do Xlet eles podem ser pausados e resumidos, diferentemente dos applets.»

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.graphics• javax.tv.graphics

« Habilita simples composições e fornece um container para construção de interfaces com componentes AWT. »

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.locator• javax.tv.locator

« Fornece acesso aos dados e recursos endereçados ao receptor de TV Digital. »

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.media• javax.tv.media

« Define o controle e eventos para gerenciamento de conteúdos visuais e de áudio. »

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.net• javax.tv.net

« Fornece acesso aos datagramas IP transmitidos pelo Stream de Broadcast. »

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.service• javax.tv.service

« Fornece acesso ao banco de dados do Service Information e APIs para seus sub-pacotes. »

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.util• javax.tv.util

« Suporta a criação e gerenciamento de eventos de tempo. »

Conceitos sobre JavaTV e Xlet

API JavaTV

• javax.tv.xlet• javax.tv.xlet

« Fornece os métodos para gerenciamento do ciclo de vida da Xlet controlados pelo gerenciador de programas. »

Exemplos de Aplicações

ExemplosExemplos

Conclusão.

• Mercado altamente promissor.

• Diversos nichos a serem explorados.

• Hora de se capacitar.• Hora de se capacitar.

• Levar a ideia para as universidades.

• Promover eventos.

• Se divertir.

Referências.

• Livro: Programando em NCL 3.0

• www.itvbr.com.br

• www.ginga.org.br• www.ginga.org.br

• www.gingancl.org.br

• www.grupogingagoias.com.br

• www.gingadf.com.br

• www.google.com.br

Dúvidas.

Obrigado

• Contato:

– www.diemesleno.com.br

[email protected]

– @diemesleno– @diemesleno

Fim do 2 dia

GingaMS