LAYERDEV

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Desenvolvimento de Aplicativos para TV Digital - Parte 4

por Equipe ECODE10.COM em 20/1/2009

    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.

voltar   comente  subir

Download Copy





 
Equipe ECODE10.COM

A equipe ECODE10.COM procura trazer sempre a você leitor, uma nova notícia referente a tecnologia, eletrônicos e muito mais. Estamos sempre publicando notícias para você! ecode10.com








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):

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

Microsoft finaliza a junção das empresas
Windows Azure com iOS
HTC Sense vem com Windows 7
App New York Times no Windows Phone
Sony Vaio série Z
Windows Phone 7, lançamento parte 6
Touch Mouse Microsoft
Microsoft Visitor Center Globe
Visualizar no Próprio Mail (Macbook)
Media Center Microsoft bombando
Acer W4 com Windows Phone 7
Nova promoção hoje e amanhã para usuários da comunidade aspneti.com
App iTributo
eBook Grátis lançado para ser lido em dispositivos móveis
Relógio James Bond
Visual Studio 2010 Express for Windows Phone
Novas funcionalidades no Windows Phone 7
Microsoft mostra o Code Space
A pressão na Nokia
Windows Phone 7, lançamento parte 4
Deixe a sua webcan funcionar como instrumento de segurança
Lumia 800 White
Solução que busca vídeo através de imagens
Windows 8 com acelerômetro
Vem ai a semana de Interoperabilidade
Reconhecimento do Google
Samsung Omnia 7
LG E-Notes
Android 2.3.6 Samsung Nexus S
Internet Explorer 8 RC em Português
HTC Omega com Windows Phone 7 Mango
Notebook 3D ou 4K?
Google alerta sobre vírus
Fujitsu IS12T chega amanhã no Japão
Rumor: deixando a Microsoft




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Notebook 3D ou 4K?

Notebook vem com tudo...

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...




NETITC