curso_1 - WordPress.com

Anuncio
TV Digital – Ginga NCL
TEMARIO
• Introducción al lenguaje NCL
• Lenguaje NCL
• Ejemplo paso a paso
• Ejercitación
Introducción al lenguaje NCL
Introducción
Repasando
El sistema de TV Digital utiliza un middleware
que permite ejecutar aplicaciones interactivas
dentro de un STB.
Introducción
Repasando (cont.)
Ese middleware es conocido como Ginga.
• Ginga-NCL  aplicaciones basadas en lenguaje NCL
• Ginga-J  aplicaciones basadas en lenguaje Java
Introducción
Repasando (cont.)
Ginga
y
Aplicaciones
Arquitectura
Base(
Estándar
ISDB-T)
Introducción
• Ejemplo de aplicación interactiva:
“Cocineros Argentinos”
Introducción
El lenguaje NCL está basado en un modelo conceptual de
datos llamado NCM (Nested Context Model).
Este modelo conceptual permite representar elementos
multimediales, sincronizarlos en tiempo y espacio para
crear aplicaciones interactivas.
Introducción al lenguaje NCL
Identificando elementos y sus relaciones en la
aplicación “cocineros”.
Video
Imagen
Texto
Introducción al lenguaje NCL
Entidades básicas representadas en NCL:
• Objeto Media
• Descriptor
• Región
• Link
• Contexto
Introducción al lenguaje NCL
Relación entre las entidades
Introducción al lenguaje NCL
¿Qué vamos a mostrar? - Objetos Media
Los objetos media son elementos de contenido
multimedial:
Audio
Video
Texto
Imagen
HTML
Lua
Introducción al lenguaje NCL
¿Dónde los vamos a mostrar? - Regiones
Una región representa un área de un dispositivo
en la cual ciertos objetos media serán
visualizados.
Ejemplo:
El logo del canal
se visualizará
en la esquina
superior derecha.
Introducción al lenguaje NCL
¿Cómo los vamos a mostrar? - Descriptores
Un descriptor indica en que región se mostrará
el objeto media y con que propiedades.
Ejemplo grado de transparencia de una imagen.
imagen
descriptor
region
Introducción al lenguaje NCL
¿Cuándo los vamos a mostrar? - Links y Conectores
Permiten especificar acciones sobre objetos media
a partir de la ocurrencia de eventos.
Condición: “al presionar
el botón amarillo”
Condición
Acción
Acción: “mostrar
una imagen”
Introducción al lenguaje NCL
• Contexto
Permite agrupar elementos NCL y reutilizarlos.
TEMARIO
 Introducción al lenguaje NCL
• Lenguaje NCL
• Ejemplo paso a paso
• Ejercitación
El lenguaje NCL
El lenguaje NCL
Estructura General de un documento NCL
EDTVProfile o BDTVProfile, perfiles de NCL para indicar Enhanced DTV o Basic DTV.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ncl id=“main"
xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head>
region, descriptor, connector
</head>
<body>
media, port, switch, link
</body>
</ncl>
El lenguaje NCL
<head>
<regionBase>
<region …
</regionBase>
/>
región -> ¿dónde mostramos?
<descriptorBase>
<descriptor …
</descriptorBase>
/>
descriptor -> ¿cómo mostramos?
<connectorBase>
<connector …
</connectorBase>
/>
conector -> ¿cuándo mostramos?
</head>
<body>
<port ... />
puerta -> puerta de inicio
<media ..../>
contexto y media -> ¿qué mostramos?
<link .../>
link -> ¿cuándo mostramos?
</body>
El lenguaje NCL – Entidades Básicas
• Todo objeto NCL contiene un identificador, para
definirlo se utiliza el atributo id.
• Ejemplo:
<descriptorBase>
<descriptor id="descriptorId" region="regionId" />
</descriptorBase>
El lenguaje NCL
Elemento REGION
Representa una área de la pantalla
●
Las regiones pueden anidarse
●
Su tamaño y posición se puede indicar en porcentajes o pixeles.
●
• Atributos
• id: identificador de la región
• height: altura de la región
• width: ancho de la región
• left, right, top, bottom: indican posición y dimensión de la región
• zIndex: especifica la precedencia de superposición de la región.
El lenguaje NCL
Elemento REGION
• <region id=" region1" height="100%" width="100%" zIndex="1" />
• <region id=“region2" top=“0" left=“0" height="50%" width="50%" >
<region id=“region3" right=“50" left=“50" top=“50" bottom=“50" />
<region>
El lenguaje NCL
Elemento DESCRIPTOR
Indica en qué región se mostrará el objeto media
●
Permite especificar propiedades de su presentación
• Atributos
●
• id: identificador del descriptor
• region: identificador de la región asociada
• explicitDur: define la duración del objeto media asociado al
descriptor
En el caso de los videos dura el tiempo total del video, en otros
casos este tiempo es infinito (imágenes, textos y HTML).
Ejemplo
<descriptor id="descImagen" region=“regImagen" explicitDur=“10s" />
El lenguaje NCL
Elemento DESCRIPTOR
●
Parámetros
●
Se definen como un par (propiedad, valor)
●
Las propiedades dependen del tipo de objeto media
asociado al descriptor (transparency, soundLevel)
Ejemplo
• Transparency:
• números reales entre 0 y 1, por defecto toma 1.
• porcentaje entre 0% y 100%.
<descriptor id="descImagen" region="regImagen">
<descriptorParam name="transparency" value="60%"/>
</descriptor>
El lenguaje NCL
Elemento DESCRIPTOR – Navegación con teclas
●
Se define mediante el uso de atributos del descriptor
●
focusIndex, focusBorderColor, focusBorderWidth
●
moveLeft, moveRight, moveUp, moveDown
●
Utilidad menúes
Ejemplo
<descriptor id="descImagen" region="regionId" focusIndex="1"
moveDown="2"/>
<descriptor id="descImagen" region="regionId" focusIndex="2"
moveUp="1" moveDown="3" />
El lenguaje NCL
Objeto
ObjetoMedia
MEDIA
●
Son elementos de contenido multimedial: video, imagen,
sonido, texto, html y lua.
• Atributos:
• id: identificador
• src: path donde se ubica el media
• descriptor: id del descriptor asociado
• type: opcional, define el tipo MIME del objeto MEDIA
Ejemplos:
<media id="image" descriptor="imageDesc" src="foto.jpg" />
<media id="video" descriptor="videoDesc" src="sbtvd-ts://0" />
El lenguaje NCL
Objeto MEDIA
●
●
Hasta ahora las propiedades se definian en la región,
descriptor, o parametros del descriptor
Tambien se pueden definir en un objeto MEDIA con el tag
property
Define una interfaz para poder cambiar el valor de la propiedad en el
objeto MEDIA
• Atributos:
- name: indica el nombre de la propiedad
- value: indica el valor que tomará la propiedad
●
●
Ejemplo:
<media id=“texto" src=“texto.txt“ descriptor="descTexto">
<property name=“fontSize“ value=“20”/>
</media>
El lenguaje NCL
•Propiedades específicas de objetos media de audio
• soundLevel
• Valores numéricos de 0 a 100 Ej.: value=“0.2”, value=“100”
<property name=“soundLevel“ value=“0.2”/>
•Propiedades de objetos media visuales
• top, left, right, width
• Formato de valores iguales a los ya presentados
• location
• Forma abreviada del grupo de propiedades (left, top)
<property name=“location“ value=“40%, 10%”/>
• bounds
• Forma abreviada de (left, top, width, height)
<property name=“bounds“ value=“40%, 10%, 30%, 30%”/>
El lenguaje NCL
Propiedades específicas de objetos media de texto
• fontColor
• blue, red, white, black, ...
• fontSize
• 0 .. 100
• weight
• bold, normal
• fontFamily
• Tiresias
<media id=“texto" src=“media/texto1.txt“ descriptor="descTexto">
<property name=“fontColor“ value=“blue”/>
<property name=“fontSize“ value=“20”/>
<property name=“weight“ value=“bold”/>
<property name=“fontFamily“ value=“Tiresias”/>
</media>
El lenguaje NCL
Componente CONTEXT
Es un objeto contenedor de entidades NCL.
●
Permite agrupar elementos y reutilizarlos.
●
El body de un documento NCL también es un contexto
●
• Atributos
• id: nombre del identificador del contexto
• refer: opcional, referencia a un contexto previamente
definido. El cual puede estar en otro documento NCL.
• Ejemplo
<context id="idDeContexto" >
...
</context>
El lenguaje NCL
Componente PORT
Son puertas de entrada a los contextos
●
Mapean la puerta a un elemento del contexto (objeto
Media o Context)
●
Pueden definirse más de una para cada contexto
●
En el body un Port que apunta a un objeto Media, indica
que comenzará la presentación del mismo al iniciar la
aplicación
●
Atributos
• id: identificador
• component: id del objeto media que se mapea a la puerta
El lenguaje NCL
Componente PORT
pEntrada
body
imagen
<body>
<port id=“pEntrada” component="imagen"/>
</body>
El lenguaje NCL
Transitions
Permiten mostrar objetos MEDIA con efectos de transición
de entrada o salida
Atributos
• id: identificador de la transición
• type: atributo obligatorio que indica el tipo de transición.
Los valores posibles son : fade, barWipe, irisWipe,
clockWipe, snakeWipe
• dur: duración de la transición en segundos. Por defecto es
1 segundo.
Ejemplo
<transitionBase>
<transition id=“transicion” type="barWipe" dur="5s"/>
</transitionBase>
El lenguaje NCL
Transitions
• Se asocian a los descriptores
• transIn
• Indica qué transición usar al mostrar el objeto Media.
• transOut
• Indica qué transición usar al ocultar el objeto Media.
• El valor que toman estas propiedades son identificadores de
transiciones
• Ejemplo
<descriptor id="descImagen" region=“regImagen"
explicitDur="10s" transOut="transicion”/>
transIn="transicion"
TEMARIO
 Introducción al lenguaje NCL
 Lenguaje NCL
• Ejemplo paso a paso
• Ejercitación
Creación de una aplicación NCL usando Eclipse
Herramientas
1. Eclipse
• El entorno de desarrollo integrado (IDE) Eclipse permite crear y
editar aplicaciones NCL
2. Plugin NCL Eclipse
• Provee funcionalidades tales como:
• creación de documentos .ncl
• coloreado de sintaxis
• autocompletado y autoformato de código
• indicación de errores
3. Virtual Box
• Permite usar la máquina virtual Linux que corre Ginga-NCL
• Simula la ejecución del middleware
Creación de un proyecto NCL usando Eclipse
1) Crear un proyecto convencional
• En Package Explorer hacer
click con el botón derecho
y elegir:
New  Project…
• Se abrirá una ventana
donde se debe seleccionar:
General  Project  Next
Creación de un proyecto NCL usando Eclipse
2) Crear un documento NCL
• Completar el nombre del proyecto nuevo:
EjemploMostrarUnaImagen
• Presionar Finish.
Creación de un proyecto NCL usando Eclipse
2) Crear un documento NCL
En el proyecto nuevo:
• Click derecho y elegir:
New Other… NCL NCL Document
• Presionar Next
Creación de un proyecto NCL usando Eclipse
2) Crear un documento NCL
• Completar los campos:
• id: main
• nombre de archivo: main.ncl
(se autocompletará al poner el id,
pero puede modificarse)
• Presionar Finish.
Crear una carpeta compartida
• Seleccionar en el menu de la maquina virtual
• Devices – shared folders
• Agregar una nueva carpeta
• Indicar el path y asignar un <folderName>
• Tildar make permanent
• Luego, abrir una consola y ejecutar la línea:
sudo mount -t vboxsf <folderName> shared
• Luego en la carpeta /home/virutalbox/shared se
encontrará el contenido de la carpeta compartida
Ejemplo paso a paso:
Mostrar una imagen
Ejemplo paso a paso
Mostrar la imagen “quebradaDeHumahuaca.jpg”
Quebrada de Humahuaca- Jujuy
Generación de código NCL
En el head:
•Definir una <region> dentro de <regionBase>
Una región define el espacio de exhibición de un objeto media.
<regionBase>
<region id=“regFondo" width="100%" height="100%"/>
</regionBase>
•Definir un <descriptor> dentro de <descriptorBase>
Un descriptor define las características de presentación de un media y
la región en el que se muestra.
<descriptorBase>
<descriptor id="descImagen" region=" regFondo“ />
</descriptorBase>
Generación de código NCL -Continuación
En el body:
• Definir el objeto <media> que representa la imagen
El objeto media debe tener: id, path de la imagen, descriptor a usar
<media id="imagen“ src=“media/imagen1.jpg” descriptor="descImagen"/>
• Indicar un <port> de inicio
Un <port> indica que componente se presentará al iniciar la
aplicación NCL
<port id=“pEntrada" component="imagen"/>
TEMARIO
 Introducción al lenguaje NCL
 Lenguaje NCL
 Ejemplo paso a paso
• Ejercitación
Ejercitación:
Parte 1 – Uso de propiedades y componentes
básicos
Parte 1 – Uso de propiedades y componentes básicos
• Ejercicio 1: Mostrar un video
• Ejercicio 2: Mostrar una imagen con transparencia sobre un
video
• Ejercicio 3: Mostrar una imagen durante un determinado
tiempo
• Ejercicio 4: Mostrar una imagen con transparencia y durante
un tiempo determinado sobre un video. La imagen debe entrar
y salir con una transición. •Ejercicio 5: Realizar un menu de 5 items que se despliegue
sobre el video. Utilizar navegación con teclas.
Parte 1 – Uso de propiedades y componentes básicos
Ejercicio 1 Mostrar el video “NuestraArgentina.avi”
Cordillera de los Andes
Parte 1 Ejercicio 1 – Notación Gráfica
pEntrada
video1
body
Parte 1 – Uso de propiedades y componentes básicos
Ejercicio 2
Mostrar la imagen “TvPublica.jpg” con transparencia
60% sobre el video “NuestraArgentina.avi”
Acantilados patagónicos - Chubut
Parte 1 – Uso de propiedades y componentes básicos
Notación gráfica
pEntrada1
pEntrada2
video1
imagen1
transparency =“60%”
body
Parte 1 – Uso de propiedades y componentes básicos
Ejercicio 3
Mostrar la imagen “TvPublica.jpg” durante 10
segundos mientras se está viendo el video
NuestraArgentina.avi”
Glaciar Perito Moreno- Santa Cruz
Parte 1 – Uso de propiedades y componentes básicos
Notación gráfica
pEntrada
imagen1
explicitDur=“10s”
body
Parte 1 – Uso de propiedades y componentes básicos
Ejercicio 4
Mostrar la imagen “mapaJunin.jpg” con transparencia del
70% durante 10 segundos sobre el video
“NuestraArgentina.avi”. La imagen debe entrar y salir
con una transición. Junín- Buenos Aires
Parte 1 – Uso de propiedades y componentes básicos
Notación gráfica
pEntrada1
pEntrada2
video1
imagen1
explicitDur =“10s”
transIn =“transicion”
transOut =“transicion”
transparency =“70%”
body
Parte 1 – Uso de propiedades y componentes básicos
Ejercicio 5
Realizar un menú de 5 ítems que se despliegue sobre el
video. Utilizar navegación con teclas.
El menú deberá contener los siguentes ítems
• Película
• Actores
• Sinópsis
• Ficha Técnica
• Trailers
TEMARIO
• Ejercitación
 Creación de un proyecto NCL usando Eclipse
 Parte 1 – Uso de propiedades y componentes básicos
• Parte 2 – Uso de conectores y links
• Parte 3 – Reuso a partir de contextos y switches
• Parte 4 – Codificación de objetos .lua
Descargar