Tomi Kujanpää (Tol-98)
SMIL -ohjauskieli
Oulun yliopiston tietojenkäsittelytieteiden laitos
Internet ja tietoverkot-opintojakson harjoitustyö
24.2.2000
Alkutiivistelmä
Tämän esseen on kirjoittanut Tomi Kujanpää,
Internet ja Tietoverkot opintojakson harjoituksena keväällä
2000.SMIL-ohjauskieli-työ käsittelee
SMIL ohjauskielen taustoja, toimintaa, työkaluja sekä
tulevaisuutta.
Sisällys
Alkutiivistelmä
Johdanto
1. Mikä SMIL on?
2. Taustaa
3. Toiminta
3.1. SMIL -dokumenttien rakenne
3.2 SMIL -dokumenttien toiminta
4. SMIL työkalut
4.1. SMIL -dokumenttien katselu
4.2 SMIL -dokumenttien muokkaus
5. Tulevaisuus
Lähteet
Johdanto
SMIL-ohjauskieli ei ole vielä saavuttanut suurta tunnettavuutta
osittain syystä, että se on vielä kehityvaihessa.
SMIL 1.0 Specification on jo julkaistu ja seuraavaksi ollaan julkaisemassa
SMIL "Boston" versiota. Tämän harjoitustyön
tarkoituksena on kuvata mitä SMIL on, kuinka se rakentuu, mitkä
ovat sen ominaisuudet, mikä on sen tausta ja mitkä ovat sen
tulevaisuuden näkymät.
1 Mikä SMIL on ?
SMIL (Synchronized Multimedia Integration Language) on multimedian
esitystä varten kehitetty HTML:n (Hypertext Markup Language)
kaltainen ohjauskieli. SMIL:n avulla voidaan helposti määritellä
ja synkronisoida multimediaelementtejä (video, ääni,
still kuvat, teksti) esitettäväksi Webissä. Nykyäänkin
voidaan Internetissä esittää multimediaa, mutta jokainen
elmentti on erillinen eikä sitä voida koordinoida toisten
elementtien kanssa ilman ohjelmointia esimerkiksi Javalla. Näin
SMIL tuo uuden ulottuvuuden WWW-sivujen esitykseen.
SMIL toimii samoilla periaatteilla kuin esimerkiksi Flashilla tai
Directorilla tehdyt dokumentit. Kaikki tapahtuu siis aikajanaa seuraten.
Jokaisella tapahtumalla (mediaelementillä) on omat määritetyt
aika-arvot, joiden aikana niitä esitetään. Määritetyn
ajan loputtua tapahtuman esitys keskeytyy ja siirrytään seuraavaan
elementtiin. Esitykset eivät kuitenkaan rajoitu ainoastaan yhteen
elementtiin kerralla, vaan esillä voi olla rajaton määrä elementtejä
yhtä aikaa esitettävänä. Työkaluna SMIL ei ehkä
vedä vertoja edellä mainituille ohjelmille (Flash,Director), mutta
on huomattavasti yksinkertaisempi, eikä vaadi niin paljon laitteistolta.
Kuitenkin SMIL:n avulla voidaan teoriassa tehdä samat asiat kuin Flash:n.
Flash tosin tukee paremmin ei-lineaarisia menetelmiä, kun taas SMIL:n
avulla ei-lineaaristen dokumenttien tekeminen on erittäin vaikeaa ellei
jopa lähes mahdotonta.
SMIL dokumenttien sisällön ei tarvitse sijaita samassa
fyysisessä paikassa, vaan jokaisen mediaelementin olinpaikka
määritetään, kuten HTML:ssä URL:n
(Uniform Resource Locator) avulla. SMIL tukee myös usean
mediaelementtiversion käyttämistä. Eli elementit voidaan
tallentaa eri kaistanleveyksillä, jolloin käyttäjät
jotka tarvitsevat pienempää kaistanleveyttä saavat elementin
haluamassaan muodossa. Tämä ominaisuus on omiaan Internetiin,
jossa käyttäjien laitteistojen ominaisuudet ja nopeudet vaihtelevat
suuresti.
http://www.wdvl.com/Authoring/Languages/XML/SMIL/Intro/
2 Tausta
SMIL kehitettiin ratkaisemaan ongelmia erilaisten mediadokumenttien
koordinoinnissa Web-sivuilla. Käyttöön otettiin aikajana
jolle sivun mediaelementit koordinoidaan ja synkronisoidaan.
SMIL pohjautuu XML-kuvauskieleen (eXtensible Markup Language).
SMILeä on kehitetty World Wide Web Consortiumin (W3C) toimesta ja
mukana on ollut edustajia CD-ROM, interaktiivisen television, Web sekä
audio ja video streaming teollisuuden parista. Ensimmäinen julkinen
luonnos SMILestä julkaistiin marraskuussa 1997.
W3C, Macromedia Inc. ja Microsoft esittelivät vuonna 1998
spesifikaation, jota kutsuttiin nimellä HTML+TIME. Spesifikaatio
perustui SMIL 1.0 spesifikaation, mutta siihen oli lisätty hieman
ominaisuuksia tukemaan paremmin Web-selaimen tyyliä
http://hagen.lel.rug.nl/hypertext/smil.html
3 Toiminta
3.1 SMIL-dokumenttien rakenne
SMIL on hyvin samankaltainen HTML:n kanssa, eikä dokumenttien
tekemiseen tarvita muuta kuin tekstieditori. Suurimmat erot verrattuna
HTML:ään ovat:
- SMIL dokumenttien tagit tulee kirjoittaa pienillä kirjaimilla eli SMIL tekee eron suurten ja pienten kirjainten välille on siis niin sanottu case sensitive, toisin kuin HTML.
- SMIL:n tagit vaativat lopetuksen, joka ei aina ole pakollista HTML:ssä ainakaan toiminnan kannalta.
(Kuvat.smil)
<smil>
<head>
<layout>
<root-layout width="300" height="300" background-color="white" />
<region id="eka_kuva" left="10" top="20" width="20" height="20" />
<region id="toka_kuva" left="100" top="20" width="90" height="130" />
<region id="kol_kuva" left="150" top="30" width="10" height="10" />
</layout>
</head>
<body>
<seq>
<img src="kuva1.gif" alt="Testi kuva" region="eka_kuva" dur="10s" />
<img src="kuva2.gif" alt="Toinen testi kuva" region="toka_kuva" dur="8s" begin="5s" />
<img src="kuva3.gif" alt="Toinen testi kuva" region="kol_kuva" dur="10s" begin="8s" />
</seq>
</body>
</smil>
Kuten yllä olevasta voi huomata, että SMIL-dokumentti on
rakenteeltaan suuresti HTML-dokumentin kaltainen. Voitaisiinkin sanoa,
että SMIL on HTML + aika. <smil> tagi aloittaa SMIL-dokumentin
ja </smil> tagi on lopettaa sen. Päärakenne SMIL-dokumetissa
on kuten HTML-dokumentissa.
<smil>
<head>
. . .
</head>
<body>
. . .
</body>
</smil>
<head> osiossa määritellään koko dokumentin
layout sekä kaikkien dokumenttiin tulevien elementtien paikat.
<body> osiossa taasen määritellään missä,
miten ja kuinka kauan kukin elementti tulee näkymään koko
dokumentille varatulla alueella.
3.2 SMIL -dokumenttien toiminta
Yllä olevassa esimerkissä "Kuvat.smil" luodaan kolme
eri aluetta joihin sitten tuodaan kuvia tietyksi ajaksi. Kuva
"kuva1" tuodaan alueeseen "eka_kuva" ja sitä
näytetään kymmenen sekuntia. Kuva "kuva2"
tuodaan alueeseen "toka_kuva" aloittaen sen näyttö
viisi sekuntia ensimmäisen kuvan katoamisesta ja näyttäen
sitä kahdeksan sekuntia ja niin edelleen.
SMIL:ssä on runsaasti tageja, joiden tarkoituksena on esittää,
koordinoida sekä synkronoida mediaelementtien tomintaa.
<layout> tagin avulla määritellään SMIL-dokumentin
koko ja siinä olevien alueiden koko.
<root-layout> tagi määrittelee koko
SMIL-dokumentti-ikkunan
koon ulkonäön (esimerkiksi taustaväri).
<region> tagin avulla määritetään alue, jolla
voidaan jotakin mediaelementtiä esittää. Dokumentin paikka
määritellään top, bottom, right ja left määreiden
avulla. Mitä suurempi määritetty luku on sitä kauempana
määritetty alue on dokumentti-ikkunan reunasta.
<par> -tagia käytetään samassa tarkoituksessa, kuin
esimerkin <seq> tagia, eli elementtien esityksen synkronointiin.
Käytettäessä <par> tagia elementtien näkyminen
on yhtäaikaista ja käytettäessä <seq> tagia
peräkkäistä, kuten edellä olleessa esimerkissä.
<switch> -tagia käytetään esimerkiksi kun halutaan
näytettäväksi eri elementtejä riippuen käyttäjän asetuksista.
Voidaan esimerkiksi katsoa mitä kieltä käyttäjän
järjestelmä käyttää ja valita tämän
mukaan käyttäjälle sopiva kieli.
<animation>, <audio>, <image>, <text> ja niin
edelleen tagien tarkoituksena on määrittää elementtien
sijaintia ja attribuutteja. Esimerkissä käytin <img> tagia,
jolla määritin, että elementin tyyppi on kuva ja tämän
jälkeen annettiin sille sijainti ja parametreina missä, mistä
alkaen ja kuinka kauan sen tulee näkyä.
Hyperlinkki tagina toimii <a> aivan kuten HTML:ssäkin ja
tämän attributtina href ja show, joka esimerkiksi avaa uuden
url :n samalla kun esitys jatkuu esim. RealPlayerissä. SMIL tukee
myös muita formaatteja kuin itseään eli SMIL-dokumenttiin
voidaan upottaa esimerkiksi HTML-dokumentti. Yhdessä
SMIL-esityksessä voi olla myös linkki toiseen SMIL esitykseen
tai sen osaan, jota siirrytään katsomaan alkuperäisen
esityksen keskeytyessä (tai myös jatkuessa).
<anchor> tagi juontaa juurensa HTML:n image mappien ideasta. Image
mapissa käytettiin osaa kokonaisesta mediaelementistä
hyödyksi. <anchor> tagin avulla saadaankin määriteltyä
näkyviin osa jostakin mediaelementistä ja sen kestoa voidaan
muokata attribuuttien avulla. Alla olevassa esimerkissä videon kesto on
jaettu kahteen ali-intervalliin. Molempiin intervalleihin on määrätty
eri linkki. Näin ollen nollasta viiteen sekuntiin linkki on AudioVideoon
ja viidestä kymmeneen sekuntiin linkki on Styleen ja kyseessä oleviin
osoitteisiin pääsee klikkaamalla videota.
<video src="http://www.w3.org/CoolStuff">
<anchor href="http://www.w3.org/AudioVideo" begin="0s" end="5s"/>
<anchor href="http://www.w3.org/Style" begin="5s"
end="10s"/>
</video>
http://www.w3.org/TR/REC-smil/
4 SMIL työkalut
4.1 SMIL -dokumenttien katselu
Nykyiset selaimet eivät vielä (ainakaan virallisesti) tue
SMIL -dokumentteja. Microsoft on tosin tehnyt Internet Explorer version 5.5,
jonka tulisi voida näyttää SMIL -dokumentteja, mutta
selain on vielä beta-tasolla.
Seuraavat yhtiöt ovat kuitenkin lisänneet SMIL -dokumenttien
katseluominaisuuden ohjelmistoonsa
- Apple QuickTime 4.1
- Compaq HPAS
- Helio Barbizon
- Microsoft Player Internet Explorer 5.5 Preview (supports selected modules of SMIL Boston draft)
- NIST S2M2 Player
- Oratrix Grins
- Productivity Works L p player
- RealNetworks Realplayer 7
http://www.w3.org/AudioVideo/
Yksi yleinen tapa katsoa SMIL -dokumentteja tällä hetkellä
, on RealPlayerin tai QuickTimen avulla. Nämä ohjelmat kun
löytyvät suurimmasta osasta tietokoneista ja ovat näin
etulyönti asemassa verrattuna oudompiin sovelluksiin kuten GRiNSin
ohjelmaan. Kuitenkin esimerkiksi GRiNS tarjoaa yhdessä rakennus-,
muokkaus- ja katseluympäristön, joka olisi huomattavasti
käytännöllisempi, jos esimerkiksi haluaisi tehdä
itse SMIL-dokumentteja. Oudommat SMIL-dokumenttien katselu- ja
editointiominaisuuksia omaavat ohjelmat ovat myös usein maksullisia,
toisin kuin esimerkiksi RealPalyer, jonka saa ilmaiseksi itselleen
Internetistä. Yleisten selainten aloittaessa tukemaan
SMIL-dokumentteja, suurin osa käyttäjistä oletettavasti
tukeutuu selainten ominaisuuksiin ja näin pääpaino siirtyy
selaimille kuten Netscape ja Explorer.
4.2 SMIL -dokumenttien muokkaus
Vaikka SMIL ei vielä olekaan saavuttanut suurempaa huomiota, on sille
olemassa jo editoreita, validaattoreita ja muita hyötyohjelmia.
Esimerkiksi CWI SMIL Validator http://dejavu.cs.vu.nl/~symm/validator/
tarjoaa SMIL -dokumentin validiointi palvelua.
Editoreita löytyy esimerkiksi HotSausagen, Digital Renaissance ja
niin edelleen ohjelmistotarjonnasta.
http://www.w3.org/AudioVideo/
Kuten jo aikaisemmin olen maininnut SMIL-dokumentin tekeminen ei
kuitenkaan tarvitse muuta kuin teksti editorin kuten Notepad, joskin
tarkoitukseen laaditulla editorilla työstäminen käy helpommin,
eikä tarvitse katsoa kaikkea reference -manuaalista.
Jos henkilö hallitsee HTML:n on SMIL -dokumenttien tekemiseen helppo
siirtyä, useat tagit kun toimivat samaan tyyliin. Uusiakaan ei ole sen
vaikeampi oppia kuin HTML:n uusia tageja tai menetelmiä.
SMIL-dokumenttien teosta on Internetissä saatavilla useita
tutoriaaleja. Nämä tutoriaalit ovat vieläpä
erittäin hyviä ja havainnollisia. Kaikki olennaiset toiminnot on
esitelty ja usein vieläpä tyyliin opi SMILeä SMILen avulla.
Yksi parhaimmista on luultavimminkin Helion tarjoama tutoriaali, joka on
hieman suppea, mutta erittäin havainnollinen. Lisäksi on tietysti
olemassa SMIL 1.0 Specification, joka kertoo kaiken, SMILellä voi
tehdä. SMIL 1.0 Specification löytyy osoitteesta
http://www.w3.org/TR/REC-smil/
5 Tulevaisuus
Microsoft Internet Exprolerin 5.5 beta versio tukee SMIL-dokumentteja.
Näin ollen mitä suurimmalla todennäköisyydellä selaimet tukevat
SMIL -dokumentteja jo lähitulevaisuudessa. Tämä tarkoittanee
sitä, että WWW-sivujen monipuolisuus tulevat kasvamaan ja
ulkonäkö muuttumaan hieman monipuolisemmaksi. Useammat
ominaisuudet tulevat myös hitaiden yhteyksien käyttäjien
saataville, SMILen ominaisuuksien ansiosta. Onhan nykyäänkin jo
useita Flash tekniikalla toteutettuja sivuja, mutta SMIL tulee olemaan yksi
varteenotettava ja luultavastikin hyvin onnistunut tapa esittää
mediaelementtejä WWW-sivuilla.
Tällä hetkellä SYMM (Synchronized Multimedia Working Group)
pyrkii saavuttamaan W3C Proposed Recommendation Statuksen SMIL "Boston" :ille
huhtikuuhun 2000 mennessä ja W3C Recommendation Statuksen
kesäkuuhun 2000 mennessä. SMIL "Boston" tarkoituksena
on moduloida SMIL seuraaviin moduuleihin: Animation, Content Control,
Layout, Linking, Media Object, Metainformation, Structure, Timing and
Synchronization and Integration Module (Integration Module on
päälinja SMILen aikapohjaisuuden integrointiin muihin XML kieliin.)
XHTML ja CSS saattavat tulevaisuudessa sisältää osan edellämainituista
SMIL moduuleista. Esimerkiksi CSS saattaa tulla sisältämään
niin sanotun "timesheetin".
Alla olevan esimerkin mukaan <STYLE > tagin avulla
määritellään kullekin tyypille aika esimerkiksi LI
tagille annetaan ajaksi viisi (5) sekuntia. Koska UL tagi on
määritelty toimimaan seq tagin tyyliin eli elementti seuraa toista
elementti peräjälkeen, näytetään listan ensimmäistä
elementtiä nollasta viiteen sekuntiin (0-5s) ja listan toista elementtiä
ensimmäisen elementin päättymisen jälkeen viisi
sekuntia eli viidestä kymmenen sekuntiin (5-10s).
<HEAD>
<STYLE>
UL { timeLine: seq; }
LI { font-weight: bold; duration: 5s; }
</STYLE>
</HEAD>
<BODY>
<UL>
<LI> Lista elementti yks </LI>
<LI> Lista elementti kaksi </LI>
</UL>
</BODY>
Tämän kaltainen SMIL -kielen käyttö on luultavasti yksi suuri osa SMIL:n
tulevaisuutta. SMIL:n hyvien ominaisuuksien lisääminen jo käytössä olevien
kuvauskielten toiminnoiksi tulee parantamaan ja nopeuttamaan SMIL:n
yhteensopivuutta ja käyttökelpoisuutta.
http://www.w3.org/AudioVideo/Activity.html
Lähteet
http://hagen.lel.rug.nl/hypertext/smil.html viitattu 18.2.2000
http://www.wdvl.com/Authoring/Languages/XML/SMIL/Intro/viitattu 18.2.2000
http://www.whatis.com/smil.htmviitattu 18.2.2000
http://www.w3.org/AudioVideo/ viitattu 18.2.2000
http://www.w3.org/Submission/1998/14/ viitattu 18.2.2000
http://www.w3.org/TR/REC-smil/ viitattu 24.2.2000