5.4 Iteración 3: aproximación a la sincronización
5.4.2 Análisis de SMIL
5.4 Iteración 3: aproximación a la sincronización
Listado 5.25: Ejemplo de cuerpo TTML
...
2 < b o d y r e g i o n=" s u b t í t u l o ">
< div >
4 < p x m l : i d=" s u b t 0 1 " b e g i n=" 00 :20 .8 s " end=" 00 :27 .6 s ">
S w e e t l i t t l e w o r d s m a d e for s i l e n c e
6 </ p >
...
8 < p x m l : i d=" s u b t 0 5 " b e g i n=" 00 :4 2 s " end=" 00 :47 .4 s ">
Kiss , w h i l e y o u r l i p s are s t i l l red
10 </ p >
< p x m l : i d=" s u b t 0 6 " b e g i n=" 00 :47 .5 s " end=" 00 : 5 5 s ">
12 W h i l e he’s s t i l l s i l e n t r e s t
</ p >
14 < p x m l : i d=" s u b t 0 7 " b e g i n=" 00 :55 .1 s " end=" 01 : 0 0 s ">
W h i l e b o s o m is s t i l l u n t o u c h e d , u n v e i l e d
16 </ p >
< p x m l : i d=" s u b t 0 8 " b e g i n=" 01 :01 .3 s " end=" 01 : 0 4 s ">
18 H o l d a n o t h e r h a n d
</ p >
20 < p x m l : i d=" s u b t 0 9 " b e g i n=" 01 :04 .6 s " end=" 01 :07 .8 s ">
W h i l e the h a n d ’s s t i l l w i t h o u t a t o o l
22 </ p >
< p x m l : i d=" s u b t 1 0 " b e g i n=" 01 :07 .89 s " end=" 01 : 1 4 s ">
24 D r o w n i n t o e y e s w h i l e t h e y ’re s t i l l b l i n d
</ p >
26 < p x m l : i d=" s u b t 1 1 " b e g i n=" 01 :14 .1 s " end=" 01 :24 .5 s ">
L o v e w h i l e the n i g h t s t i l l h i d e s the w i t h e r i n g d a w n
28 </ p >
...
30 </ div >
</ body >
32 </ tt >
Los atributosbeginyendcontienen la temporalización y han de especificarse mediante una expresión temporal24. El atributo begin le indica al reproductor del vídeo que comience a mostrar la línea de texto; end indica cuándo dejar de mostrarla.
5.Desarrollo del proyecto
Permitir la reutilización de la sintaxis SMIL 3.0 en otros lenguajes basados en XML, concretamente en aquellos que necesitan representar el tiempo y la sincronización.
Extender las funcionalidades de SMIL 2.1 en los nuevos (o revisados) módulos de SMIL 3.0.
Definir nuevos perfiles móviles, incorporando características útiles dentro de la industria.
Al igual que ocurre con TTML (descrito en la subsección anterior) el documento SMIL también cuenta con una cabecera y un cuerpo, en los cuales pueden declararse diferentes elementos y cuya estructura puede verse en el Listado 5.26.
Listado 5.26: Estructura de documento SMIL
< s m i l x m l n s=" h t t p : // www . w3 . org / ns / S M I L "
2 v e r s i o n=" 3.0 "
b a s e P r o f i l e=" L a n g u a g e ">
4 < head >
...
6 < layout >
...
8 < r e g i o n x m l : i d=" s u b t í t u l o s " w i d t h=" 120 px " h e i g h t=" 30 px "/ >
...
10 </ layout >
</ head >
12 < body >
...
14 </ body >
</ smil >
Declaración de SMIL 3.0
Desde la publicación de SMIL 1.0, ha crecido el interés por integrar los conceptos de SMIL con HTML y otros lenguajes XML. Por esto, nacen dos conceptos clave: la modularización y el perfilado. Por un lado, la modularización es una aproximación en la cual se especifica la funcionalidad como un conjunto de módulos25 que contienen elementos XML relacionados semánticamente, atributos y sus propios valores. Por otra parte, el perfilado (profiling), es la creación de un lenguaje basado en XML que combina los módulos, proporcionando así la funcionalidad necesaria a una aplicación concreta y mejorando la interoperabilidad.
Puede considerarse un concepto válido la separación clara entre el contenido y la estructura del documento. Sin embargo, esto suele conllevar un aumento de la carga en las aplicaciones que hacen un uso extensivo de objetos textuales relativamente ligeros.
Por esto, en lugar de mantener (o generar) un solo documento, SMIL propone definir varios archivos fuente: uno para la estructura y otro para los fragmentos de texto.
25 Cada módulo representa una unidad de funcionalidad.
64
5.4 Iteración 3: aproximación a la sincronización SMIL proporciona un nuevo tipo de módulos multimedia que aportan funcionalidad adicional, como smilText. Los módulos smilText definen conjuntos adicionales de elementos y atributos para controlar la temporalización de los textos, aportando las siguientes clases de funcionalidad:
Titulares. Requiere soporte para cadenas de texto relativamente cortas que han de diferenciarse estéticamente del resto. Dicha diferenciación puede basarse en el tamaño, el color o la alineación.
Etiquetas. Requiere soporte para cadenas de texto relativamente cortas. El texto puede ser de diferentes tamaños para usos parecidos, tal como el título de una fotografía o el texto de un botón.
Subtítulos. Requiere soporte para cadenas de texto multilínea, para proporcionar una representación visual entre las señales habladas y el audio correspondiente.
Subtítulos en otros idiomas. Similar a la clase anterior, excepto que no se presentan ni el audio ni las señales habladas.
Tiempo del texto en movimiento. Requiere soporte para el estilo de marquesina en movimiento o el estilo de texto enrollado (como los créditos de una película).
Texto entre objetos. Requiere la especificación de fragmentos de texto que, o bien están provocados por medios externos (como un determinado fotograma en un vídeo) o bien los desencadenan objetos externos (como el sonido de un gong26 cuando aparece cierta palabra en el texto).
Texto condicional. Requiere soporte para la especificación condicional de texto dentro del área de renderizado. Las condiciones pueden depender del estado de variables en el documento, y pueden evaluarse dinámicamente durante la presentación del texto.
Bloques de texto estático. Requiere soporte para grandes cantidades de texto con formato. El bloque de texto puede consistir en información que se presenta condicionalmente durante una presentación, como el texto de ayuda o la descripción del contenido.
smilText se diseñó para proporcionar soporte para las primeras siete clases anteriores.
Para la octava clase, los bloques de texto estático, se considera más apropiado un archivo externo en un contenedor estático.
26 Un gong (o tam-tam) es un instrumento de percusión metálico de origen oriental.
5.Desarrollo del proyecto
Listado 5.27: Ejemplo de smilText en SMIL
1 < s m i l x m l n s=" h t t p : // www . w3 . org / ns / S M I L " v e r s i o n=" 3.0 "
b a s e P r o f i l e=" L a n g u a g e ">
3 < head >
...
5 < t e x t S t y l i n g >
< t e x t S t y l e id=" t i t u l a r e s "
7 t e x t C o l o r=" b l u e "
t e x t A l i g n=" c e n t e r "
9 t e x t F o n t S i z e=" l a r g e "/ >
</ t e x t S t y l i n g >
11 ...
</ head >
13 < body >
...
15 < s m i l T e x t r e g i o n=" s u b t í t u l o s " dur=" 10 s "
t e x t C o l o r=" w h i t e "
17 t e x t F o n t S t y l e=" i t a l i c ">
P r i m e r a l í nea
19 < tev b e g i n=" 3 s "/ >
de s u b t í t u l o s .
21 < c l e a r b e g i n=" 5 s "/ >
< tev x m l : i d=" b o c i n a " n e x t=" 1.5 s "/ >
23 ...
< tev b e g i n=" 8 s " dur=" 3 s " t e x t S t y l e=" t i t u l a r e s ">
25 ...
</ s m i l T e x t >
27 < a u d i o b e g i n=" b o c i n a . b e g i n E v e n t "
src=" s o n i d o . mp3 "
29 r e g i o n=" s o n i d o s "/ >
...
31 </ body >
</ smil >
Contenedor de estilo
Alcance temporal Información de estilo
Marcadores temporales Subtítulo en dos partes, con intervalo de 3 segundos
Limpiar la región durante 5 segundos Inicia audio con IDbocina