Busca online em todo site:

Seja bem vindo(a) Visitante, voc no est logado deseja logar
na comunidade ASPNETi.COM e participar de servios e promoes ? clique aqui.




Título do Artigo

Desenvolvimento de Aplicativos para TV Digital - Parte 4


Data Publicação: 20/1/2009 17:05:06
Total de visualizações: 1118

comente
 


    Desenvolver aplicativos para TV Digital, tem se tornado cada dia mais popular, tanto no Brasil quanto fora. No Brasil, a linguagem Ginga-NCL tem reinado mais do que outras linguagens, não quer dizer que o Ginga-J ou Java-TV estão fora do mercado; mesmo assim é bom ficar atento com todas as linguagens de software.
    Todos os passos anteriores mostro exemplos em Ginga-NCL, um passo a passo importante para você que está começando a desenvolver. Só a linguagem não faz com que o software desenvolvido apareça na TV, é necessário uma aparelhagem, ou seja, um Set-top box preparado, com framework instalado e muito mais.
    Tentei falar com alguns fabricantes e, ninguém conseguiu ainda me mostrar um set-top box preparado com Ginga-NCL, isto é, pronto e funcionando com conectividade.
    Está muito perto de ser lançado esse aparelho, porém, aos desenvolvedores; fiquem atentos e desenvolvam software para TV Digital. Essa foi só uma dica do que tenho visto junto ao mercado.

Aplicativo

    O exemplo mostrado no artigo, reproduz um título e um vídeo numa região da tela de forma sincronizada, com início e término da mídia.
    Utilizei um arquivo .HTML e um vídeo .MPG, os mesmos estão dentro de uma pasta chamada media; para ficar mais organizado com os arquivos do programa. A ferramenta para desenvolvimento é o Eclipse com o plugin instalado.

Primeiro Passo
Gerar um projeto no eclipse.


Referência 4-1

    Cliquei em file / new e Other... Automaticamente apareceu a tela de Wizard, posso escolher o tipo de documento que gostaria criar. (Referência 4-2)

 
Referência 4-2

    Cliquei na pasta NCL e no documento NCL Document, como mostrado na referência 4-2. O próximo passo foi clicar em Next. (Referência 4-3)

 
Referência 4-3

    No campo Container, coloquei “/exemplo02”, é apenas uma pasta específica do projeto, assim não fica diretamente ligado a outros projetos. No campo id, alterei o nome para exemplo02.ncl que, automaticamente apareceu o mesmo nome no campo file name.
    Isso porque um id é o mesmo nome do arquivo dentro do NCL.
    Depois de atribuir os valores, cliquei no botão Finish e criou o arquivo.




Codificação

<ncl id="exemplo02"
xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">

   <head>

      <regionBase>
         <region id="rgTV" width="1920" height="1080">
            <region id="rgTitulo1" left="200" top="116" width="600" height="40" />
            <region id="rgVideo1" left="200" top="156" width="600" height="768" />
         </region>
      </regionBase>

Code 4.1

    O primeiro passo na codificação foi, criar uma base de regiões com definições em tela onde, serão apresentadas as mídias ou arquivos; como no meu caso; um arquivo .HTML contendo o título do programa que está sendo passado.
    Uma região coloquei com o nome rgTitulo1 com left, top, width e height que significa a posição em tela, altura em tela, tamanho do vídeo em largura e tamanho do vídeo em altura, ou seja, verticalmente falando.    
    Uma observação importante, o rdTitulo1 deve estar com o atributo top menor do que o rgVideo1, para que possa ficar acima do vídeo. Não coloque acento nos atributos ou variáveis criadas.
    A área total é da minha região é de 1920 com o id rgTV.
    O próximo passo é, criar uma base de descritores que definem como as mídias são apresentadas. (Code 4.2)


      <descriptorBase>
         <descriptor id="dTitulo1" region="rgTitulo1">
            <descriptorParam name="border" value="none" />
         </descriptor>
         <descriptor id="dVideo1" region="rgVideo1">
            <descriptorParam name="soundLevel" value="1" />
         </descriptor>
      </descriptorBase>


Code 4.2
    É importante entender que as variáveis sempre se relacionam dentro do código. Para criar os descritores, criei variáveis começando com a letra “d”. As mesmas se relacionam com uma região criada anteriormente.
    O descritor dTitulo1 se relaciona com a região rgTitulo1; o descritor dVideo1 se relaciona com a região rgVideo1.
    Coloquei uma tag a mais no código, chamada de descriptorParam, coloquei a borda da região sem nada, ou seja, com o valor none.
    A mesma coisa fiz com o soundLevel, coloquei o valor igual a 1 para ouvir o som caso tenha o mesmo no vídeo. O próximo passo é, definir o comportamento dos elos, ou seja, dos relacionamentos. Preciso criar uma base de conectores; em outro arquivo. (Referência 4-4)
 

Referência 4-4

    Cliquei em file / new / Other..., em seguida escolhi o documento do tipo Connector Base Document. Coloquei o nome e cliquei no botão Finish. (Referência 4-5)


 Referência 4-5

    Coloquei o nome de ConnectorBase.NCL. Para iniciar o vídeo, gerei um id causalConnector chamado onBegun1StartN e outro onEnd1StopN.  (Code 4.3)



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

<ncl id="connectorBase"
xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/EDTVProfile http://www.ncl.org.br/NCL3.0/profiles/NCL30EDTV.xsd">

<head>

<connectorBase>

<causalConnector id="onBegin1StartN">
  <simpleCondition role="onBegin"/>
  <simpleAction role="start" max="unbounded" qualifier="par"/>
</causalConnector>


<causalConnector id="onEnd1StopN">
  <simpleCondition role="onEnd"/>
  <simpleAction role="stop" max="unbounded" qualifier="par"/>
</causalConnector>

</connectorBase>

</head>

</ncl>


Code 4.3

    Existe condições simples onBegin1StartN e onEnd1StopN. Os mesmos recebem como parâmetro e regra onBegin e onEnd.
    Para importar o arquivo novo criado dentro do exemplo02.ncl, preciso colocar o comando importBase. (Code 4-4)


     <connectorBase>
         <importBase alias="connectors" documentURI="connectorBase.ncl" />
      </connectorBase>


Code 4-4


    Depois de definir o conector base, fecho a tag de cabeçalho e começo o corpo do programa. (Code 4-5)


</head>

   <body>



Code 4-5

    Dentro do corpo, coloquei um ponto de entrada que, indica o componente do programa inicialmente. (Code 4-6)


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


Code 4-6

    Até o momento as mídias não foram definidas, dessa forma, elas não serão executadas. Na parte de mídias, defini o local dos arquivos de mídia e as associo com os descritores criados anteriormente. (Code 4-7)


<media type="text/html" id="titulo1" src="media/titulo1.html" descriptor="dTitulo1" />
<media type="video/mpeg" id="video1" src="media/video1.mpg" descriptor="dVideo1" />


Code 4-7

    Cada media type possui um tipo diferente. No final, coloquei o descritor relacionado anteriormente. A tag src é o endereço do arquivo localmente, um .html e outro .mpg.
    Estou quase acabando o programa para ser executado na TV Digital, porém preciso definir os ELOS de sincronismo simultâneo entre as mídias. Ao iniciar o vídeo, simultaneamente será iniciado o título1 atribuído logo no início do artigo. Para isso, uso o conector base. (Code 4-8).


      <link id="lVideo1Titulo1Start" xconnector="connectors#onBegin1StartN">
         <bind component="video1" role="onBegin" />
         <bind component="titulo1" role="start" />
      </link>

      <link id="lVideo1Titulo1Stop" xconnector="connectors#onEnd1StopN">
         <bind component="video1" role="onEnd" />
         <bind component="titulo1" role="stop" />
      </link>

   </body>
</ncl>


Code 4-8

    A tag link possui um atributo chamado xconnector onde indico o nome definido do connectors (a tag especificamente) separado por # (sharp ou jogo da velha) e o nome do comando.
    Esse nome pode ser o que você quiser, lembre-se que deve ser relacionado de uma forma correta, nos arquivos, mídias e elos.
    A tag bind é necessária para setar a regra (role) com o mesmo nome do arquivo connectorBase.ncl. Existem dois links, um com start e outro com stop.
    Para executar o programa, cliquei em RUN / RUN AS / 1 NCL Presentation. (Referência 4-6).

 

Referência 4-6.

    O emulador entra em ação. (Referência 4-7).
 

Referência 4-7.

    O resultado foi. (Referência 4-8)



Referência 4-8.

    Bom, fico por aqui e espero ter ajudado. Qualquer coisa, favor entrar em contato.
Mauricio Junior.



Total de visualizações: 1118
voltar   comente  subir

Autor:


Por:Mauricio Junior
Maurício Júnior
Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog:  blog.mauriciojunior.orgSite pessoal  www.mauriciojunior.org


Comentários:

Comentado por: Cleide Silva - 3/7/2009 0:00:00
Mauricio, sou iniciante neste assunto e estou com muita vontade de aprender esta nova tecnologia, parabéns e muito obrigada pelos exemplos e dicas.
Deus te abençõe.
abs,

Comente (dê sua opinião): VOCÊ PRECISA ESTAR LOGADO

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Artigo criando atalhos para a sua aplicação.
Abrindo Janela de Forma Modal
Vídeo - Google Earth Live em tempo real
Estatísticas de Acesso na Comunidade ASPNETi.COM
Sistema de Login em ASP Utilizando três camadas - Parte VIII
CES 2008: Keynote do Bill Gates
GridView Parte III
Comunicação .NET e VB 6.0 – Parte I
Terra TV Disponibiliza Vídeos com Silverlight
Cortando String XML
Retirar Tag HTML dos campos utilizando expressão
Ler RSS usando o Visual Studio.NET 2005
Nem tudo é o que parece!
Ophone The Microsoft - Vídeo
Vídeos SQL Server 2005 Express Gratuitamente
Entrevista com um cracker diz que IIS é mais seguro que Apache
Criando Alias no Pacote
Anime-se com o Silverlight
Resources e Internacionalização usando Visual Studio.NET 2005 (Parte II)
Criando Splash - Com Efeito
Certificação - Segunda Chance
SQL Server 2005 SP2 já está disponível :)
Themas - Muito Simples
Desenvolvimento de Aplicativos para TV Digital - Parte 2
Vídeo: Windows Phone com Windows Mobile 7
Microsoft lança seu próprio QRCode
Copiando Script
Forum utilizando VS 2005 e Ajax
Criando Números Aleatoriamente
Loja Apple (a2you.com.br) feita em .NET (Microsoft)
Tech Fest 2009
Vídeo - Criando um WebBrowser
ASP.NET MVC
Criando TreeView com Visual Studio.NET 2005 (passo 1)
Trabalhando com Cookie (parte II)

Publicidade:

[sumir] [aparecer]
LAYERDEV




Informaes Online:

Usurios Online: 489
Artigos:  663
Vdeos:  47
PodCast's:  31
Frum:  3098
Empregos:  1226
Usurios Cadastrados: 5794

Categoria de Artigos

Vdeos

Enquete - D sua opinio

 Os podcasts tem sido proveitoso pra você?

 

Colaboradores

Foto Autor autor: Mauricio Junior   
publicou 382 artigo(s).
Foto Autor autor: Júlio Battisti   
publicou 51 artigo(s).
Foto Autor autor: Fabio Galante Mans   
publicou 28 artigo(s).
Foto Autor autor: Kleber Becerra   
publicou 10 artigo(s).
Foto Autor autor: Ramon Durães   
publicou 6 artigo(s).
Foto Autor autor: Ebenézer de Souza   
publicou 5 artigo(s).
Foto Autor autor: Fabio Aguiar   
publicou 4 artigo(s).
NETITC