440 likes | 647 Views
SMIL Synchronized Multimedia Integration Language Ciro Autiero. Cosa è SMIL. SMIL (si pronuncia “smile”) è l’abbreviazione di Synchronized Multimedia Integration Language è un linguaggio per l’integrazione e la sincronizzazione di diversi files multimediali.
E N D
SMIL Synchronized Multimedia Integration Language Ciro Autiero
Cosa è SMIL • SMIL (si pronuncia “smile”) è l’abbreviazione di Synchronized Multimedia Integration Language è un linguaggio per l’integrazione e la sincronizzazione di diversi files multimediali. • Permette di creare documenti multimediali in cui: – 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 di markup, in particolare un linguaggio XML.
Cosa non è SMIL? • Non è un nuovo protocollo per la trasmissione di media. • Non è uno strumento di authoring di media. • Non è un’alternativa a Flash anche se permette la formulazione di animazioni.
SMIL vs HTML • HTML permette l’integrazione di diversi oggetti in una pagina web. • Come HTML, SMIL non permette la creazione di nessun tipo di media (ma diversamente da HTML, anche i file di testo vengono creati esternamente). • Diversamente ad HTML, gestisce in modo completo l’utilizzo di media continui: – Sincronizzazione, – Interazione…
SMIL - Cronologia • 15 Giugno 1998 Vengono pubblicate le specifiche di SMIL 1.0 come W3C recommendation • 7 Agosto 2001 Le specifiche di SMIL 2.0 diventano una W3C recommendation. • 13 Dicembre 2005 Le specifiche di SMIL 2.1 diventano una W3C recommendation
SMIL 1.0 • disporre oggetti multimediali in punti precisi dello schermo, • descrivere il comportamento temporale dei diversi elementi di una presentazione multimediale, • interagire con link ad altre presentazioni o parti di esse.
SMIL 2.0 • Modularizzazione del linguaggio, • Profiling (Language Profile e Basic Profile), • inserire animazioni nella timeline della presentazione, • inserire transizioni tra un oggetto e l’altro, • modificare la riproduzione “on-the-fly” sulla base di alcuni eventi scatenati dall’utente
SMIL 2.1 • Introduzione di feature per terminali mobili, in particolare vengono aggiunti i profile: Mobile Profile e Extended Mobile Profile, • rivisti ed aggiunti moduli sulla gestione temporale dei file multimediali, sulla disposizione degli oggetti (layout) nella presentazione e sulle transizioni.
SMIL è un linguaggio modulare • SMIL 2.1 è diviso in 10 aree funzionali. Ogni area funzionale è poi suddivisa in moduli: • Timing • Time Manipulations • Animation • Content Control • Layout • Linking • Media Objects • Metainformation • Structure • Transitions
Player e Browser • Player Strumento per la riproduzione di media continui. • Browser Ha come scopo principale la navigazione tra le pagine. Solitamente i player si integrano come “plugins” del browser Web
Player per documenti SMIL • Apple QuickTime: http://www.apple.com/quicktime/download/ • Compaq HPAS: http://research.compaq.com/SRC/HPAS • Oratrix Grins: http://www.oratrix.com • AMBULANT (1.6) Open Source SMIL Player: http://www.cwi.nl/projects/Ambulant/distPlayer.html • RealSystem G2: http://www.real.com • ......
Come funziona 1) Il browser incontra un file "SMIL" 2) Lo riceve… 3) ...il browser richiama l'applicazione esterna che si preoccuperà di... 4) e 5) ...richiedere i vari file necessari per la presentazione e visualizzarla.
SMIL Profiles • Un Profile è un insieme di moduli di SMIL che consente di ottimizzare la presentazione in funzione delle caratteristiche del Client. • I Profiles sono pertanto tentativo di far interagire diversi player e browser: – una presentazione deve poter essere eseguita da più player (attualmente questo non è in generale vero) – su dispositivi diversi → PDAs, lettori MP3, … • Le specifiche SMIL 2.1 definiscono quattro Profile: – Language Profile. – Mobile Profile. – Extented Mobile Profile. – Basic Profile and Scalability Framework.
Ruolo di SMIL negli MMS • I messaggi MMS si basano sul linguaggio di programmazione SMIL che viene utilizzato per produrre presentazioni che includono contenuti multimediali • Con l’obiettivo di mantenere al più alto livello possibile l’interoperabilità del servizio alcuni protagonisti del mondo delle telecomunicazioni (CMG Wireless Data Solutions, Comverse, Logica, Motorola, Nokia, Siemens e Sony Ericsson) hanno creato l’MMS CONFORMANCE DOCUMENT, consolidato sotto l’OMA (Open Mobile Alliance).
MMS Conformance Document • Obiettivo Unificare il più possibile il linguaggio SMIL e specificarne le caratteristiche da utilizzare anche fra utenti e terminali differenti: – Contenuto del messaggio multimediale. – Elementi ed attributi del linguaggio di presentazione. – Formato dei contenuti multimediali. – Abbassamento del livello di capacità.
Come creare un documento SMIL • Una presentazione SMIL è un semplice file di testo tipicamente estensione .smi e può essere editato con un semplice editor di testo, ad esempio WordPad. • Per creare una presentazione SMIL l'unica cosa che serve (oltre ai documenti multimediali che si voglio presentare) è un editor di testo. • Gli strumenti di authoring specifici offrono delle interfacce grafiche che esplicitano meglio l’andamento del tempo. Alcuni esempi: – GRiNS – RealSlideshow – LimSee2 (open source)
Struttura di un documento SMIL <smil> <head> <!-- informazioni sul contenuto --> <layout> <!-- definizione delle regioni --> </layout> </head> <body> <!-- sincronizzazione degli elementi della presentazione--> </body> </smil>
SMIL come linguaggio XML • SMIL è un linguaggio di markup con una struttura molto simile ad un documento HTML. SMIL estende XML e ne rispetta la sintassi (HTML non rispetta la sintassi XML). Pertanto in un documento SMIL: – 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.
Versione e regole del Documento • Come ogni documento XML anche i documenti SMIL iniziano con una dichiarazione che ne definisce la versione: <?xml version="1.0"?> • Un secondo elemento opzionale e che è spesso presente nei documenti XML e pertanto anche nei documenti SMIL è un riferimento alle regole secondo cui il documento deve essere interpretato: <!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.1//EN" "http://www.w3.org/2005/SMIL21/SMIL21.dtd">
Un primo esempio di documento SMIL <?xml version="1.0"?> <!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.1//EN“ "http://www.w3.org/2005/SMIL21/SMIL21.dtd"> <smil xmlns="http://www.w3.org/2005/SMIL21/Language"> <head> <meta name="title“ content=“SMIL Introduction"/> <meta name="author" content=“Autiero Ciro"/> <layout> </layout> </head> <body> <video src=“partita.mpg"/> </body> </smil>
La sezione Head • Contiene informazioni relative al contenuto della presentazione (tag meta) • la disposizione spaziale (layout) dei media: – la definizione delle finestre, – la definizione delle regioni della presentazione in cui sono visualizzati i media • la definizione delle transizioni utilizzate nella presentazione.
La sezione Head: codice <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>
Layout • Il tag layout definisce la disposizione spaziale della presentazione: è possibile definirvi: – finestre, – regioni, – punti di ancoraggio. • La finestra principale è definita come <root-layout>. • Le altre finestre sono definite come <topLayout>.
Top Left Heigth Width Posizionamento delle regioni Origine • 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. → posizionamento → volume • Si considera come origine l’angolo superiore sinistro della finestra principale, e si calcola la distanza in numero di pixel.
Un esempio di definizione di regione <smil xmlns="http://www.w3.org/2005/SMIL21/Language"> <head> <layout> <root-layout width= “500” height=“400” background-color=“white”/> <region id= “icona” left=“25” top=“50” width=“450” height= “313” /> </layout> </head> <body> <seq dur="10s"> <img src=“chat.jpg” alt=“Immagine” region=“icona”/> </seq> </body> </smil>
Attributi per il layout • region Id Tag per denire un’area di applicazione in cui inserire contenuti multimediali con il relativo nome assegnato • backgroundColor colore di sfondo di questa zona espressa in valori esadecimale • bottom, left, right, top distanze espresse in pixel dall’origine • height, width Altezza e larghezza espressa in pixel • fit"disegna" il file multimediale in corrispondenza all' altezza e alla lunghezza definita negli attributi precedenti
La sezione Body • Contiene la descrizione dei contenuti della presentazione (path, regione occupata…), • le descrizione del comportamento temporale della presentazione multimediale, • le modalità di interazione con l’utente, • le animazioni definite nella presentazione.
La sezione Body: codice <body> <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" /> <audio src="audio/piano.rm" begin="2s"/> </par> </seq> </body>
Riproduzione parallela • Il tag<par>permette la riproduzione parallela di piùoggetti. • Tramite degli attributi è possibile cambiare l’inizio e la fine della riproduzione dei media. <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 secondi --> <audio src=“colonna_sonora” dur=“15s” /> <audio src=“commento_parlato” begin=“10s”/> </par>
Riproduzione in sequenza • Il tag <seq> permette la riproduzione sequenziale di più oggetti. • La sincronizzazione si realizza annidando i tag <seq> e <par>. <seq> <!-- questi 2 file vengono eseguiti in sequenza --> <audio src=“primo_comento” /> <audio src=“secondo_commento” /> </seq>
Attributi di par e seq • begin specifica l'esatto inizio temporale di un elemento • dur determina la durata temporale dell’elemento • repeat indica il numero di volte per cui l’elemento deve essere riprodotto • end specifica l'esatta fine temporale di un elemento <body> <seq> <img src=“chat.jpg" begin="4s" end="10s" dur="15s" region="icona" /> </seq> </body>
Eventi • È possibile sincronizzare due o più oggetti sulla base del verificarsi di un evento: per fare un riferimento ad un evento particolare lo costruisco indicando: – 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>
Le transizioni • Le transizioni sono filtri o effetti che rendono meno netto il passaggio da un media ad un altro. • Un media può avere una transizione di entrata e una transizione di uscita. • Le transizioni non modificano la durata degli oggetti. • Per creare un effetto devo conoscere tre dati: – il media iniziale (sorgente o background), – il media finale (destinazione), – la progressione della transizione (tipo, durata…).
Definizione delle transizioni • Sono definite in due modi: con il tag <transition> nella sezione head e utilizzate nella definizione dei media. In questo modo possono essere riutilizzate. <head> <transition id=“trans_1" dur="1s" type="fade" /> </head> ... <body> <par dur="5s" > <img id=“img_1" transIn=“trans_1" …/> <img id=“img_2" transOut=“trans_1" …/> </par> </body>
Tipo di transizione • L’effetto risultante dalla transizione è ottenuto combinando i valori di due attributi: – type indica un insieme di transizioni, – subtype indica un effetto particolare e può essere omesso. • La durata di una transizione è definita dall’attributo dur=“Ns”. http://www.w3.org/TR/smil20/smil-transitions.html
Le animazioni • In SMIL è possibile creare delle animazioni che: – muovono un oggetto, – ne modificano le dimensioni, – cambiano un colore o – cambiano il valore di un parametro in modo dinamico, attraverso i tag: – animate, – animateMotion, – animateColor, – set.
Hyperlink • SMIL supporta link unidirezionali molto simili a quelli offerti dal linguaggio HTML. • 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>
Definizione degli hyperlink • <a> contiene la sorgente del link e definisce la destinazione nell’attributo href • <area> descrive la sorgente di un link come una porzione di un media di forma shape e delimitata dalle coordinate coord. • show, sourcePlaystate e sourceLevel definiscono lo stato della sorgente. • destinationPlaystate e destinationLevel definiscono lo stato della destinazione.
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. • Un file SMIL può essere messo a disposizione su un web server. Il Client accede al file tramite il browser: http://webserver.com/path/file.smi La presenza del Player sul Client consente la visione della presentazione SMIL.
Uno schema per introdurre SMIL in HTML <htmlxmlns:t ="urn:schemas-microsoft-com:time" > <?import namespace="t" implementation="#default#time2"> <head> <title>…</title> <style> .time {behavior: url(#default#time2);} p { font-family:arial; color:black; font-size:10pt } div { font-family:arial black; font-size:18pt; color:black } </style> </head> <body> … </body> </html>
Regione slide Anteprima slide Regione documenti Regione video SMIL per l’E-learning
Perché usare SMIL? • Perché è supportato da organi di standardizzazione e dal mondo “industriale” (Wide Web Consortium (W3C), RealNetworks, IBM, Intel, Macromedia, Microsoft, Netscape/AOL, Nokia, Ericsson, Canon, Panasonic, Philips, ...) • Perché è un formato aperto e gratuito. • Perché è possibile scrivere presentazioni multimediali in SMIL utilizzando un semplice editor di testo. • Perché è semplice. • Perché la sua impostazione modulare consente di utilizzarlo senza conoscerne tutti i dettagli • ....
Riferimenti • Specifiche SMIL: – http://www.w3.org/AudioVideo/ • SMIL Tutorial: – http://www.smilguide.com/guide/tutorial/learning-to-smil – http://www.html.it/smil/ – http://www.w3schools.com/smil/default.asp • Altre fonti: – http://www.xsmiles.org/ – http://smw.internet.com/smil/smilhome.html – http://www.oratrix.com