Sistemi Ipermediali SMIL 2.0 Obiettivi di SMIL SMIL

Transcript

Sistemi Ipermediali SMIL 2.0 Obiettivi di SMIL SMIL
Obiettivi di SMIL
Synchronized Multimedia Integration Language è un linguaggio per
l’integrazione di diversi media multimediali.
Permette di creare documenti multimediali in cui:
•
Sistemi Ipermediali
SMIL 2.0
•
•
•
diversi oggetti distribuiti nel web sono sincronizzati tra loro,
l’utente può interagire con essi in modo coerente,
il layout è definito in modo preciso,
l’integrazione è realizzata attraverso un formato testuale, in particolare un
linguaggio XML.
Ombretta Gaggi
Università Ca’ Foscari Venezia
Sistemi Ipermediali - 2
SMIL - Cronologia
Cosa non è SMIL?
15 Giugno 1998: vengono pubblicate le specifiche di SMIL 1.0 come W3C
recommendation.
Non è un nuovo protocollo per la trasmissione di media.
22 Giugno 2000: viene pubblicato un working draft con le specifiche di
SMIL-Boston.
Non è un’alternativa a Flash anche se permette la formulazione di
animazioni.
1 Marzo 2001: vengono pubblicate le specifiche di SMIL 2.0 come W3C
working draft.
Non è uno strumento di authoring di media.
7 Agosto 2001: Le specifiche di SMIL 2.0 diventano una W3C
recommendation.
Febbraio 2004: Profilo per gli MMS
Sistemi Ipermediali - 3
Sistemi Ipermediali - 4
SMIL vs HTML
SMIL permette di… (SMIL 1.0)
HTML permette l’integrazione di diversi oggetti in una pagina web.
disporre degli oggetti multimediali in punti precisi dello schermo
Come HTML, SMIL non permette la creazione di nessun tipo di media
(ma diversamente da HTML, anche i file di testo vengono creati
esternamente).
descrivere il comportamento temporale dei diversi elementi di una
presentazione ipermediale
Diversamente ad HTML, gestisce in modo completo l’utilizzo di media
continui:
•
•
Sincronizzazione,
Interazione…
Sistemi Ipermediali - 5
adeguare la riproduzione di una presentazione secondo alcuni parametri
relativi alla stazione di lavoro dell’utente
•
lingua, bit-rate, risorse disponibili…
interagire con link ad altre presentazioni o parti di esse
Sistemi Ipermediali - 6
SMIL permette di… (SMIL 2.0)
SMIL Profiles
utilizzare più finestre indipendenti,
Sono un tentativo di far interagire diversi player e browser,
modificare la riproduzione “on-the-fly” sulla base di alcuni eventi
scatenati dall’utente
modificare alcuni parametri relativi alle caratteristiche temporali dei
media (ad es. la velocità)
inserire animazioni nella timeline della presentazione
inserire degli effetti di transizione tra un oggetto e l’altro
Sistemi Ipermediali - 7
•
•
una presentazione deve poter essere eseguita da più player (attualmente
questo non è in generale vero)
su dispositivi diversi → PDAs, lettori MP3,…
Tre language profile sono stati definiti:
•
•
•
•
SMIL 2.0 Language Profile
SMIL 2.0 Basic Language Profile
XHMLT+SMIL 2.0 Language Profile
MMS SMIL
Sistemi Ipermediali - 8
Player e browser
Sistemi autore
Player: strumento per la riproduzione
di media continui.
Come linguaggio di markup, SMIL può essere editato con un semplice
editor di testo, ad esempio WordPad.
Browser: ha come scopo principale la
navigazione tra le pagine.
Gli strumenti di authoring specifici offrono delle interfacce grafiche che
esplicitano meglio l’andamento del tempo.
RealOne (per SMIL 1 è sufficiente
RealPlayer)
Alcuni esempi:
QuickTime 5.0 (?)
•
GRiNS
Veon V-Active Editor
RealSlideShow
•
maggiori dettagli sul sito http://www.w3.org/AudioVideo/
•
•
Internet Explorer 5.5 (XHTML+TIME) e
successivi
GRiNS
SOJA
Ambulant Player
gfdsg
Sistemi Ipermediali - 9
Sistemi Ipermediali - 10
Struttura di un documento SMIL
SMIL come linguaggio XML
SMIL è un linguaggio di markup con una struttura molto simile ad un
documento HTML ma
<smil>
<head>
<!-- informazioni sul contenuto -->
<layout>
<!-- definizione delle regioni -->
</layout>
</head>
<body>
<!-- sincronizzazione degli
elementi della presentazione-->
</body>
•
•
•
•
i tag sono case sensitive,
deve sempre esserci un tag di chiusura,
i tag devono essere aperti e chiusi nell’ordine corretto,
gli attributi vanno riportati tra “virgolette”.
I browser HTML cercano di visualizzare al meglio codice non corretto.
I player SMIL non eseguono codice non corretto.
</smil>
Sistemi Ipermediali - 11
Sistemi Ipermediali - 12
La sezione Head
Contiene informazioni relative al contenuto della presentazione (tag
meta),
la disposizione spaziale (layout) dei media:
•
•
la definizione delle finestre e
delle regioni della presentazione in cui sono visualizzati i media,
la definizione delle transizioni utilizzate nella presentazione.
Sistemi Ipermediali - 13
La sezione Head: codice
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<meta name="title" content="…" />
<meta name="author" content="…" />
<meta name="abstract" content="..." />
<layout>
<root-layout width="500" height="400"
backgroundColor="white" />
<region id="region" …/>
….
</layout>
<transition id="upSlide" type="slideWipe"
subtype="fromBottom" />
</head>
Sistemi Ipermediali - 14
Layout
Posizionamento delle regioni
Il tag layout definisce la disposizione spaziale della presentazione: è
possibile definirvi:
Le regioni sono porzioni dello schermo entro cui inserire i media della
presentazione. Vanno definite all’interno di una finestra o di un’altra regione.
•
•
•
finestre,
regioni,
punti di ancoraggio.
La finestra principale è definita come <root-layout>.
Le altre finestre sono definite come <topLayout>.
→posizionamento
→volume
Si considera come origine l’angolo superiore sinistro della finestra principale, e
si calcola la distanza in numero di pixel.
Origine
Top
Attributi: height, width, backgroundColor [background-color], open, close.
Left
Height
Width
Sistemi Ipermediali - 15
Sistemi Ipermediali - 16
Posizionamento relativo e z-index
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
Un esempio di definizione di regione
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<layout>
<root-layout width= “500” height=“400”
background-color=“white” />
<layout>
<root-layout width= “300” height=“200”
backgroundColor=“white” />
<region id= “rettangolo” left=“33%” top=“50%”
width=“50” height= “70” z-index=“1” />
<region id= “cerchio” left=“25%” top=“25%”
width=“100” height= “100” z-index=“2” />
</layout>
</head>
<body> <par>
<region id= “icona” left=“25” top=“50”
width=“450” height= “313” />
</layout>
</head>
<body>
<seq dur="10s">
<img src=“river_01.jpg” alt=“Immagine”
<img src=“rettangolo.gif” region=“rettangolo” />
<img src=“cerchio.gif” region=“cerchio” />
</par></body>
</smil>
Sistemi Ipermediali - 17
L’attributo Fit
region=“icona” />
</seq>
</body>
</smil>
Sistemi Ipermediali - 18
Punti di ancoraggio
Sono punti definiti nello schermo della presentazione, utilizzati per
allineare gli oggetti o posizionarli all’interno di regioni più grandi.
L’allineamento avviene con l’angolo superiore sinistro dell’oggetto.
Sono definiti in modo relativo:
<layout>
<regPoint id=“10dentro” top=“10” left=“10” />
<region id=“uno” …/>
<region id=“due” …/>
</layout>
Sistemi Ipermediali - 19
Sistemi Ipermediali - 20
Attributi per il layout
La sezione Body
Contiene la descrizione dei contenuti della presentazione (path, regione
occupata…),
backgroundColor
regionName
bottom, left, right, top
showBackground
close, open
soundLevel
le descrizione del comportamento temporale della presentazione
multimediale,
fit
z-index
le modalità di interazione con l’utente,
id
le animazioni definite nella presentazione (SMIL 2!).
height, width
regPoint
regAlign
region
Sistemi Ipermediali - 21
Sistemi Ipermediali - 22
La sezione Body: codice
Riproduzione parallela
Il tag <par> permette la riproduzione parallela di più oggetti.
<body>
Tramite degli attributi è possibile cambiare l’inizio e la fine della riproduzione
dei media.
<seq>
<par dur="00:12.0" >
<img src="pour.gif" transIn="rightSlide"
region="rp" fill="hold" />
<audio src="audio/guitar.rm" dur="10s"/>
</par>
<par>
<img src="heating.gif" transIn="rightSlide" region="vid" />
<par> <!-- questi 2 file vengono eseguiti in parallelo -->
<audio src=“colonna_sonora” />
<audio src=“commento_parlato” />
</par>
<par> <!-- questi due file si si sovrappongono per 5 soli secondi -->
<audio src=“colonna_sonora” dur=“15s” />
<audio src=“commento_parlato” begin=“10s”/>
</par>
<audio src="audio/piano.rm" begin="2s"/>
</par>
</seq>
</body>
Sistemi Ipermediali - 23
Sistemi Ipermediali - 24
Riproduzione in sequenza
Il tag <excl>
Il tag <seq> permette la riproduzione sequenziale di più oggetti.
Il tag <excl> permette la scelta tra più elementi: solo uno, tra i suoi
figli, può essere attivo in un certo istante.
La sincronizzazione si realizza annidando i tag <seq> e <par>.
È simile a <seq> ma non impone un ordine sequenziale.
<seq> <!-- questi 2 file vengono eseguiti in sequenza -->
<audio src=“primo_comento” />
<audio src=“secondo_commento” />
</seq>
Sistemi Ipermediali - 25
I figli in genere vengono attivati da un’interazione dell’utente.
Se un figlio inizia la sua riproduzione mentre un altro è attivo,
quest’ultimo viene terminato.
Sistemi Ipermediali - 26
Classi di priorità tra i media
Attributi per gestire la priorità
È possibile dare maggiore o minore priorità a un media su di un altro
tramite il tag <priorityClass>.
<excl>
È usato insieme al tag <excl> per gestire il comportamento degli altri
elementi quando ne viene scelto uno.
<excl>
<priorityClass peers=“pause” >
<audio id=“primo” src=“guitar.wav” />
<audio id=“secondo” src=“piano.wav” />
</priorityClass>
</excl>
<priorityClass id=“first”>
<audio id=“primo”
src=“guitar.wav” />
<audio id=“secondo”
src=“piano.wav” />
</priorityClass>
<priorityClass id=“second”
higher=“pause” >
<audio id=“terzo”
src=“violino.wav” />
</priorityClass>
</excl>
Sistemi Ipermediali - 27
Sistemi Ipermediali - 28
<excl>
<priorityClass id=“first”>
<audio id=“primo” src=“guitar.wav”
lower=“defer” />
<audio id=“secondo” src=“piano.wav”
lower=“never” />
</priorityClass>
<priorityClass id=“second”>
<audio id=“terzo”
src=“violino.wav” />
</priorityClass>
</excl>
Attributi per gestire la priorità: valori
La sincronizzazione dei media
peers gestisce la sincronizzazione tra oggetti con la stessa priorità,
La gestione della sincronizzazione avviene tramite 3 tag: par, seq, e
excl e
higher gestisce il comportamento di un oggetto in relazione
all’attivazione di un oggetto con priorità maggiore,
lower gestisce il comportamento di oggetti con priorità minore.
tutte le informazioni relative alla visualizzazione degli oggetti incluse
nella definizione dei media:
•
•
•
peers
stop, pause, defer, never
higher
stop, pause
lower
defer, never
Sistemi Ipermediali - 29
durata di un oggetto,
inizio,
fine.
L’utilizzo di questi attributi può cambiare notevolmente la disposizione
temporale.
Sistemi Ipermediali - 30
Gli attributi begin e end
Eventi
Vengono utilizzati nella sia nella definizione dei tag <seq>, <par> e
<excl>, sia nella definizione dei media.
È possibile sincronizzare due o più oggetti sulla base del verificarsi di un
evento: per fare un riferimento ad un evento particolare lo costruisco
indicando:
Valori ammessi:
•
begin=“2s” (RealPlayer) begin=“2sec” (QuickTime)
end=“00:00:25.0”
begin=“+5s” 5 secondi dopo l’elemento padre
begin=“id_oggetto.begin+5s” 5 secondi dopo l’elemento id_oggetto
end=“id_oggetto.end-5s” 5 secondi prima che l’elemento id_oggetto finisca
end=“accesskey(s)” quando l’utente digita s
•
E’ ammissibile il valore “id_oggetto.click-5s”?
•
•
•
•
•
Sistemi Ipermediali - 31
•
l’id dell’oggetto che lo ha subito + “.” + l’evento stesso.
Si possono combinare gli eventi:
<par end=“bottone.click; commento_parlato.end”>
<audio src=“colonna_sonora.wav” id=“musica”/>
<audio src=“commento_parlato.wav” id=“commento”/>
<img src=“stop.jpg” id=“bottone”/>
</par>
Sistemi Ipermediali - 32
Utilizzo degli attributi
Durata della visualizzazione
dur → durata dell’oggetto
<par>
<img src=“im1.jpg” dur=“15s”/>
<img src=“im2.jpg” begin=“5s” dur=“15s”/>
<img src=“im3.jpg” begin=“10s” dur=“15s”/>
</par>
min, max
repeat, repeatCount
•
valori: (1.0..indefinite), sono possibili anche valori decimali
repeatDur
•
valori: intervallo di tempo durante il quale il media ripete la sua riproduzione
<seq>
<audio src=“musica.wav” id=“musica”/>
<audio src=“commento_parlato.wav” id=“commento”
begin=“musica.begin+5s” />
<img src=“stop.jpg” id=“bottone” begin=“commento.begin+5s” />
</seq>
Sistemi Ipermediali - 33
Sistemi Ipermediali - 34
Dopo la visualizzazione: l’attributo fill
L’attributo endsync
L’attributo fill (o fillDefault) stabilisce il comportamento dell’oggetto
una volta terminata la sua riproduzione.
Era usato in SMIL 1.0 per terminare contemporaneamente un gruppo di oggetti.
•
valori:
9 remove → l’oggetto viene rimosso.
9 freeze → l’oggetto rimane visualizzato.
9 hold → l’oggetto rimane visualizzato fino alla terminazione dell’elemento
padre.
9 transition → l’oggetto rimane visualizzato fino alla terminazione della
transizione.
9 auto → il valore di fill dipende da altri valori.
9 default → il valore di fill dipende dal valore dell’attributo fillDefault
dell’elemento padre.
9 inherit → fillDefault dipende dallo stesso valore nel padre.
Sistemi Ipermediali - 35
<par endsync=“id(video)” >
<video id=“video” src=“video.mpeg” />
<img src=“im1.jpg”/>
</par>
<par end=“video.end” >
<video id=“video” src=“video.mpeg” />
<img src=“im1.jpg”/>
</par>
valori: first, last, all, media, un id.
Sistemi Ipermediali - 36
Sincronizzazione fine
Realizzare la sincronizzazione fine
Fino ad ora ci siamo occupati di sincronizzazione per punti o ad eventi.
5 attributi permettono di realizzare la sincronizzazione fine:
La sincronizzazione fine si occupa di sincronizzare due media durante la
loro riproduzione
•
Ex: il video di uno speaker e il relativo audio.
Sistemi Ipermediali - 37
•
syncBehavior, syncBehaviorDefault → realizzano la sincronizzazione fine
9 canSlip, locked, independent, default, inherit,
•
syncTolerance, syncToleranceDefault → intervallo di tolleranza,
•
syncMaster → valore booleano che indica il media a cui gli altri devono
sincronizzarsi. È ignorato se l’elemento è in pausa.
Sistemi Ipermediali - 38
La definizione dei media
Attributi per la descrizione del contenuto
Contiene tutte le informazioni relative al media: il tipo, il path del file
sorgente, le informazioni temporali (offset),…
abstract → viene usato per auto-generare un indice. In SMIL 2 è
preferibile l’uso dei tag meta.
Ogni oggetto è definito da un media diverso a seconda del suo tipo ma il
player determina il suo tipo reale dal tipo MIME.
alt → visualizzato quando un certo media non può essere riprodotto.
•
•
•
•
<animation>
<audio>
<img>
<ref>
•
•
•
•
•
Sistemi Ipermediali - 39
<text>
<textstream>
<video>
<brush>
<param>
longdesc → URI che punta ad una descrizione più particolareggiata del
media specifico
author, copyright, title
src → path del file sorgente
type → contiene il tipo MIME di un media
color → solo per il tag brush
•
i colori vengono costruiti secondo lo standard RGB (“#FF0000”).
Sistemi Ipermediali - 40
Attributi per le proprietà temporali
clip-begin/clipBegin, clip-end/clipEnd → spostano l’inizio/la fine della
riproduzione relativamente alla riproduzione del file sorgente.
<par>
<audio src=“audio.jpg” clipBegin=“5s” />
<img src=“im2.jpg” begin=“5s” dur=“15s”/>
Altri attributi
sensitivity → con valori opaque, transparent o una percentuale indica
quanto l’oggetto è sensibile all’interazione con l’utente.
name, value e valuetype → usati con il tag param indicano
rispettivamente il nome, il valore e il tipo del valore del parametro.
</par>
0
tempo
Sistemi Ipermediali - 41
Sistemi Ipermediali - 42
Le transizioni
Definizione delle transizioni (1)
Le transizioni sono filtri o effetti che rendono meno netto il passaggio
da un media ad un altro.
Sono definite in due modi: con il tag <transition> nella sezione head e
utilizzate nella definizione dei media. In questo modo possono essere
riutilizzate.
Un media può avere una transizione di entrata e una transizione di
uscita.
Le transizioni non modificano la durata degli oggetti.
<head>
Per creare un effetto devo conoscere tre dati:
</head>
...
<body>
<par dur="5s" >
•
•
•
il media iniziale (sorgente o background),
il media finale (destinazione),
la progressione della transizione (tipo, durata…).
<transition id="fade_1" dur="1s" type="fade" />
<img id=“img_1" transIn="fade_1" …/>
<img id=“img_2" transOut="fade_1" …/>
</par>
</body>
Sistemi Ipermediali - 43
Sistemi Ipermediali - 44
Definizione delle transizioni (2)
Tipo di transizione
Con il tag <transitionFilter> direttamente nella sezione body,
all’interno della definizione dei media. In questo caso la transizione è
valida solo per quel media.
L’effetto risultante dalla transizione è ottenuto combinando i valori di
due attributi:
•
•
<body>
<par dur="5s" >
<img id="m_1a" …>
type indica un insieme di transizioni,
subtype indica un effetto particolare e può essere omesso.
<transitionFilter type=“barWipe” mode=“in” />
barWipe
boxWipe
veeWipe
</img>
</par>
</body>
InlineTransitions: si adattano maggiormente al media.
http://www.w3.org/TR/smil20/smil-transitions.html
Sistemi Ipermediali - 45
Sistemi Ipermediali - 46
Durata della transizione
Progressione
È definita dall’attributo dur=“Ns”. Se transIn inizia con il media e dura
N secondi, se transOut inizia N secondi prima della fine del media e
termina con lui.
Alcuni attributi possono variare la progressione e la visualizzazione di
una transizione:
Il tag transitionFilter può essere utilizzato per definire transizioni
durante la riproduzione di un media, utilizzando gli attributi begin e
end.
Un effetto definito con il tag transitionFilter può essere ripetuto con gli
attributi repeatCount o repeatDur.
•
•
•
•
•
calcMode
values
direction
endProgress, startProgress, to, from
horzRepeat, vertRepeat
Attenzione: non tutti i player implementano tutte le
caratteristiche delle transizioni.
Sistemi Ipermediali - 47
Sistemi Ipermediali - 48
Le animazioni
Esempi
In SMIL è possibile creare delle animazioni che:
<layout>
•
•
•
•
muovono un oggetto,
ne modificano le dimensioni,
cambiano un colore o
cambiano il valore di un parametro in modo dinamico,
attraverso i tag:
•
•
•
•
<root-layout width="600“
<img id="m_15a" top="53“ left="100" />
height="400" />
<animateMotion targetElement="m_15a“
<region id="region_one" z-index="2" />
<region id="region_2" z-index="3"/>
</layout>
animate,
animateMotion,
animateColor,
set.
<par>
…
<par>
<img id="m_1a" region="region_2" />
<set targetElement="region_2"
attributeName="z-index"
to="1" begin="3s" dur="4s" />
to="100,200" dur="6s" />
</par>
<par>
<img id="m_15a" region="region_one" />
<animateColor targetElement="region_one"
attributeName="backgroundColor"
begin="2s" values="black;red;
green;black" dur="8s" />
</par>
</par>
Sistemi Ipermediali - 49
Sistemi Ipermediali - 50
Attributi per le animazioni
targetElement
media a cui si applica l’animazione
attributeName
attributo a cui si applica l’animazione
from/to
valore di partenza/fine dell’animazione
by
in alternativa a to indica l’offset
values
valori utilizzati nell’animazione
calcMode
indica l’interpolazione dell’animazione
accumulate/
additive
indicano la modalità di progressione dell’animazione
path
percorso del movimento
keytimes
controlla la velocità del movimento
keysplines
controlla il variare della velocità del movimento
Sistemi Ipermediali - 51
keytimes
È usato con i tag animate, animateMotion e animateColor, e definisce la
velocità dell’animazione in certi intervalli.
<smil:par begin="inizio.click" dur="10s">
<smil:animateMotion begin="0" dur="6" calcMode="linear"
targetElement="auto” values="0,0;200,0;300,0"
keyTimes="0;.25;1" />
</smil:par>
<div style="top:0;left:0;width:50“ id="auto“ >
<img id="auto" src="media/auto.jpg" />
</div>
Sistemi Ipermediali - 52
keySplines
Hyperlink
È usato con i tag animate, animateMotion e animateColor, e definisce il
variare graduale della velocità dell’animazione in certi intervalli
secondo una curva di Bezier.
SMIL supporta link unidirezionali molto simili a quelli offerti dal
linguaggio HTML.
Richiedono calcMode = “spline”.
Di un link si definisce:
•
•
•
la sorgente,
la destinazione,
il comportamento della sorgente e della destinazione del link.
<par id=“text_and_video” >
<video src=“file_video” region=“video” />
<text src=“file_testo” region=“testo” />
</par>
<a href=“presentazione.smil#text_and_video” show=“pause”>
<video src=”altro_file_video" region=“altra_regione”/>
</a>
http://www.w3.org/TR/smil-animation/
Sistemi Ipermediali - 53
Sistemi Ipermediali - 54
Definizione degli hyperlink
Il tag switch
<a> contiene la sorgente del link e definisce la destinazione
nell’attributo href
permette di regolare la riproduzione della presentazione sulla base di alcune
informazioni relative all’utente
<area> descrive la sorgente di un link come una porzione di un media di
forma shape e delimitata dalle coordinate coord.
può essere inserito sia nella sezione layout che nella sezione body
show, sourcePlaystate e sourceLevel definiscono lo stato della sorgente.
<switch>
<region id=“caption" systemAudioDesc=“on" />
</switch>
<switch>
<audio src="audio_migliore" system-bitrate="16000" />
<audio src=”audio_peggiore" system-bitrate="8000" />
</switch>
<switch>
<audio src=”audio_italiano" system-language=”it"/>
<audio src=”audio_inglese" system-language="en"/>
</switch>
destinationPlaystate e destinationLevel definiscono lo stato della
destinazione.
Sistemi Ipermediali - 55
Sistemi Ipermediali - 56
Cosa si può testare?
Un esempio in SMIL 1.0
la lingua,
il bit-rate,
la potenza di calcolo della CPU,
il sistema operativo,
la dimensione e la profondità dello schermo,
alcune scelte fatte dall’utente:
•
•
•
caption o overdub,
descrizioni audio,
sottotitoli…
quali tipi MIME l’utente è in grado di riprodurre.
Sistemi Ipermediali - 57
Sistemi Ipermediali - 58
Definizione delle regioni
Sincronizzazione: l’
l’indice e la regione video
<head>
<par id=“text_and_video” >
<layout>
<text src="toc.rt" region="toc" />
<root-layout height="425" width="625” background-color="black"/>
<seq>
<region id="title" left="5" top="150" width="400" height="200"
<!-- tutto quello che avviene nella -->
z- index="1"/>
<region id="full" left="0" top="0" height="425" width="450"
background-color="#602030"/>
<!-- parte sinistra -->
</seq>
</par>
<region id="video" left="260" top="240" height="120”
<seq>
<text src="title.rt" region="title" dur="20s“>
<par>
width="160" z-index="2"/>
<audio src="map_narration.rm"/>
<region id="toc" left="450" top="0" height="425"
<img src="map.rp" region="full"
fill="freeze"/>
width="175"/>
</layout>
</par>
</head>
<!-- video slide show-->
</seq>
Sistemi Ipermediali - 59
Sistemi Ipermediali - 60
Video Slide Show
Come inserire un puntatore ad un file SMIL
Una presentazione in cui il codice SMIL è integrato in un file HTML, si
collega creando un normale link ad una pagina HTML.
<par>
<switch>
<img src="slideshow.rp" region="full" fill="freeze"
system-bitrate="45000"/>
<img src="slideshow_low.rp" region="full" fill="freeze"
system-bitrate="20000"/>
</switch>
Un file SMIL può essere messo a disposizione su un web server o su un
RealServer:
•
•
nel primo caso è necessario creare un file RAM,
nel secondo caso il protocollo da utilizzare nel link è RSTP e si può evitare di
creare il file RAM.
<seq>
<video src="video_narration.rm" region="video" dur="27s"/>
<audio src="video_narration_audio_only.rm" clip-begin="27s"
http://webserver.com/path/file.smi
dur="53s"/>
<video src="video_narration.rm" clip-begin="80s" region="video"/>
</seq>
</par>
Sistemi Ipermediali - 61
Limitazioni di SMIL 1.0
Sistemi Ipermediali - 62
Un esempio di SMIL in un documento HTML
La gestione dell’interazione con l’utente è molto limitata.
Non permette la creazione di transizioni o di animazioni.
•
RealPlayer risolve questo tipo di limitazioni definendo due nuovi linguaggi:
9 RealPix per la creazione di slideshow temporizzati e
9 RealText per la creazione di textstream.
Sistemi Ipermediali - 63
Sistemi Ipermediali - 64
Uno schema per introdurre SMIL in HTML
<html xmlns:t ="urn:schemas-microsoft-com:time" >
<?import namespace="t" implementation="#default#time2">
Definizione degli oggetti
<t:img class="time" src="images/Villalogo.gif" id="logo" style="position:absolute;
top:150px; left:220px" width="346" height="126" />
<head>
<title>…</title>
<style>
.time {behavior: url(#default#time2);}
<div class="time" id="presents" style="position:absolute; top:200px; left:300px;
font-size:28pt; color:gray“ / > presents </div>
p { font-family:arial; color:black; font-size:10pt }
div { font-family:arial black; font-size:18pt; color:black }
<t:img class="time" src="images/anatour.gif" id="artarch“ style="position:absolute;
top:150px; eft:130px; z-index:5" width="525" height="125" />
</style>
</head>
<body>
<t:audio class="time" id="audio" src="audio/bach.asf" />
…
</body>
<span id="orange" style="position:absolute;top:230px;left:75px;
</html>
height:0px;width:350px; background-color:#FFCC66; z-index:4“ />
Sistemi Ipermediali - 65
Sistemi Ipermediali - 66
Temporizzazione e transizioni
<t:img begin="intro.click" dur="5" src="images/Villalogo.gif" id="logo" />
<t:transitionFilter targetElement="logo" type="fade" begin="logo.end-2"
dur="2" mode="out" from="0.0" to="1.0" calcmode="linear" />
<div class="time" begin="logo.end" dur="2" id="presents">
<t:transitionFilter begin="presents.begin" dur="1" mode="in" type="fade"/>
<t:transitionFilter begin="presents.end-1" dur="1" mode="out" type="fade"/>
presents </div>
<t:audio class="time" id="audio" src="audio/bach.asf" begin="presents.begin" />
<t:par>
<t:img class="time" id="artarch" begin="presents.end" dur="5" />
<t:transitionFilter targetElement="artarch" type="fade" begin="artarch.begin"
dur="2" mode="in" from="0.0" to="1.0" calcmode="linear" />
<t:transitionFilter targetElement="artarch" type="fade" begin="artarch.end-2"
dur="2" mode="out" from="0.0" to="1.0" calcmode="linear" />
</t:par>
Sistemi Ipermediali - 67
Animazioni
<t:par dur="indefinite">
<span id="orange">
<t:animate targetElement="orange" attributeName="top" from="230"
to="135" begin="artarch.end-1" dur="2" fill="freeze" />
<t:animate targetElement="orange" attributeName="height" from="0"
to="240" begin="artarch.end-1" dur="2" fill="freeze" />
</span>
<span id="brown"> …</span>
<span id="yellow"> ….</span>
</t:par> <t:par>
<t:img class="time" begin="artarch.end+1" id="smlogo" />
<t:animateMotion targetElement="smlogo" values="0,0; -210,0"
calcMode="spline" keyTimes="0;1" keySplines="0 0 .35 1" fill="freeze" />
<t:img class="time" begin="artarch.end+1" id="smartarch"/>
</t:par>
Sistemi Ipermediali - 68
Documentazione in rete su SMIL
Specifiche SMIL
•
•
http://www.w3.org/TR/smil20/
http://www.w3.org/AudioVideo/
Libro
•
T. Kennedy, M. Slowinsky, SMIL, Adding Multimedia to the Web, SAMS
Articoli
•
•
D. Bulterman, SMIL 2.0. Part 1: Overview, Concepts and Structure
D. Bulterman, Standards: SMIL 2.0. Part 2: Example and Comparisons
SMIL tutorial
•
•
http://www.empirenet.com/~joseram/ (Learn SMIL with a SMIL )
http://www.cwi.nl/~media/SMIL/Tutorial/
SMIL 1.0 in italiano
•
http://web.tiscalinet.it/dotnet/testosmile.html
HTML + SMIL
•
http://hotwired.lycos.com/webmonkey/01/24/index3a.html?tw=authoring
•
http://msdn.microsoft.com/workshop/author/behaviors/reference/time2_entry.asp
Sistemi Ipermediali - 69
Sistemi Ipermediali - 70
Sistemi Ipermediali - 71
Sistemi Ipermediali - 72