SMIL – základní elementy a konstrukce
V předchozím článku o Synchronized Multimedia Integration Language jsem se věnoval jeho podpoře v různých programech a teoreticky jsem přiblížil multimediální technologii SMIL. Tentokrát bych vám rád přiblížil některé ze základních prvků jazyka SMIL.
SMIL 1.0
Nejprve se podíváme na specifikaci SMIL 1.0. Jde o velmi jednoduchý jazyk, který sestává z nemnoha značek. Nejdůležitější částí SMIL dokumentu je DTD, která vypadá následovně:
<!DOCTYPE smil PUBLIC „-//W3C//DTD SMIL 1.0//EN“ „http://www.w3.org/TR/REC-smil/SMIL10.dtd“>
Kořenovým elementem dokumentu je prvek smil
. SMIL dokument je rozdělen do dvou částí (podobně jako dokument (X)HTML). První část je tvořena elementem head
a druhá elementem body
. Výsledný dokument může mít následující podobu:
<!DOCTYPE smil PUBLIC „-//W3C//DTD SMIL 1.0//EN“ „http://www.w3.org/TR/REC-smil/SMIL10.dtd“>
<smil>
<head>
…hlavička dokumentu
</head>
<body>
…tělo dokumentu
</body> </smil>
Hlavička dokumentu
Hlavička dokumentu obsahuje obecné informace a nastavení celého dokumentu. V hlavičce se nastavuje pozadí, rozměry prezentace, pozice jednotlivých prvků a podobně. Kromě toho může element head
obsahovat několik dalších elementů:
meta
– použití elementu je podobné jako v dokumentech (X)HTMLlayout
– element layout nastavuje rozvržení dokumentu
Pro určení rozvržení dokumentu může element layout
obsahovat další dva prvky – root-layout
a region
. Element root-layout
nastavuje vlastnosti celého dokumentu pomocí několika atributů – „background-color“ (barva pozadí), „height“ (výška okna), „width“ (šířka okna), „title“ (titulek). Element region
vytváří imaginární obdélníky, do kterých bude později možné nahrát multimédia. Zkrátka u vloženého obrázku nastavíte, do kterého regionu se má nahrát. Prvek region
má tyto atributy:
id
– identifikátor regionubackground-color
– barva pozadíleft
– pozice od levého okraje oknatop
– pozice od horního okraje oknaheight
– výška regionuwidth
– šířka regionuz-index
– tento atribut řeší překrývání dvou regionů (stejně jako v CSS)
Elementy region
i root-layout
jsou prázdné elementy.
Tělo dokumentu
Tělo dokumentu je tvořeno elementem body
. Následující elementy vkládají jednotlivá média:
img
– obrázekaudio
– zvukvideo
– videotext
– textový objekt (HTML, TXT)
Pro tyto elementy existuje mnoho společných atributů:
src
– URL zdrojealt
– popisekdur
– trvání v časové osebegin
– začátek v časové oseend
– konec v časové oseregion
– id regionu, ve kterém se má objekt zobrazittop, left, height, width
– rozměry
Časová osa a synchronizace
Atributy „begin“, „dur“ a „end“ pracují s časovou osou. Časová osa začíná nulou (od spuštění dokumentu). Atribut „begin“ určuje sekundu, od které má být objekt zobrazen. Atribut „dur“ určuje dobu trvání objektu, případně lze také použít atribut „end“, který nastavuje sekundu ukončení objektu.
Jednotlivé objekty je možné seskupovat a následně synchronizovat pomocí elementů seq
a par
, které je možné i vnořovat.
seq
– definuje sekvenční zobrazení (pokud obsahuje více jak jeden objekt, zobrazuje objekty postupně, jeden po druhém, přičemž atribut „begin“ nastavuje časovou prodlevu od předchozího objektu)par
– definuje paralelní zobrazení objektů (objekty budou zobrazeny současně, přičemž atribut „begin“ nastavuje časovou prodlevu od spuštění prezentace)
Kontrola obsahu
Kontrolou obsahu se rozumí rozhodnutí o vhodném médiu. SMIL je schopný zjišťovat vlastnosti klientského počítače (jazyk, rozlišení a další) a závisle na zjištěních poskytovat alternativy. Obecný zápis vypadá takto:
<switch>
<element hodnotici_atribut=“hodnota“ />
<element hodnotici_atribut=“hodnota2″ />
</switch>
Použitelných atributů existuje několik:
system-bitrate
– rychlost připojení v bps (28 800, 56 000…)system-language
– systémový jazyk (en, sk, cz…)system-screen-size
– rozlišení monitoru (640×480, 800×600, 1024×768…)system-screen-depth
– barevná hloubka monitoru
Příklad nakonec, určení jazyka klienta:
<switch>
<video src=“video-cz.mpg“ system-language=“cz“ />
<video src=“video-sk.mpg“ system-language=“sk“ />
<video src=“video-fr.mpg“ system-language=“fr“ />
<video src=“video-en.mpg“ />
</switch>
Konstrukce zjistí, zda se má přehrávat česky, slovensky nebo francouzsky a pokud ani jedna možnost nevyhovuje, bude použit anglický snímek.
Odkazy
Použití elementu a
je velmi obdobné použití v (X)HTML, hodnotou atributu „href“ je URL nebo „id“ jiného objektu. SMIL přidává atribut „show“, který může nabývat hodnot „replace“, „new“ a „pause“. V případě použití „replace“ bude aktuální prezentace pozastavena a nahrazena novou, při použití „new“ bude prezentace otevřena v novém okně a původní bude pokračovat dál, při použití „pause“ se nová prezentace otevře v novém okně a původní je pozastavena. Obsahem elementu a může být některý z objektů (img
, video
, audio
…) nebo synchronizační elementy (par
a seq
).
<a href=“http://interval.cz“ show=“new“>
<img src=“obrazek.png“ region=“r1″ />
</a>
Druhý možný odkaz se vytváří elementem anchor
, který se podobá klikacím mapám v HTML. Atribut „coords“ vymezuje obdélníkovou oblast, určenou hodnotami „top“, „left“ (souřadnice horního rohu) a „bottom“, „right“ (dolní roh).
<img src=“obrazek.png“ region=“r1″>
<anchor href=“http://interval.cz“ show=“new“ coords=“10, 10, 100, 100″ />
</img>
Ukázková prezentace
Níže si můžete prohlédnout kód ukázkové prezentace, kterou si můžete zobrazit také on-line, například v Apple Quick Time Playeru.
<!DOCTYPE smil PUBLIC „-//W3C//DTD SMIL 1.0//EN“ „http://www.w3.org/TR/REC-smil/SMIL10.dtd“>
<smil>
<head>
<layout>
<root-layout width=“160″ height=“160″ background-color=“white“/>
<region id=“r1″ top=“0″ left=“0″ height=“80″ width=“80″ />
<region id=“r2″ top=“0″ left=“80″ height=“80″ width=“80″ />
<region id=“r3″ top=“80″ left=“0″ height=“80″ width=“80″ />
<region id=“r4″ top=“80″ left=“80″ height=“80″ width=“80″ />
</layout>
</head>
<body>
<par>
<img src=“objekt.png“ begin=“1s“ dur=“5s“ region=“r1″ />
<img src=“objekt.png“ begin=“2s“ dur=“4s“ region=“r2″ />
<seq>
<img src=“objekt.png“ begin=“1s“ dur=“5s“ region=“r3″ />
<img src=“objekt.png“ begin=“2s“ dur=“4s“ region=“r4″ />
</seq>
</par>
</body>
</smil>
V příkladu je okno rozděleno do čtyř čtverců (80×80 px). Je zde také jasně zřetelný rozdíl mezi par
a seq
. Po spuštění prezentace se po jedné sekundě zobrazí obrázek v regionu r1 a r3, o sekundu později obrázek v regionu r2 a o dalších šest sekund později obrázek v regionu r4 (ten se zobrazí dvě sekundy po skončení předchozího obrázku).
SMIL 2.0
Asi mi dáte za pravdu, že naučit se používat SMIL 1.0 není žádný zvláštní problém, stačí si jen umět spočítat na prstech časy všech objektů a výsledek je zaručen. Bohužel rozdíl mezi specifikací SMIL 1.0 a SMIL 2.0 je propastný. V novější specifikaci přibylo mnoho stránek a těžko by se mi je podařilo shrnout do jednoho článku (což u SMIL 1.0 možné bylo, i když jsem se rozhodl nepopisovat úplně vše).
SMIL 2.0 přidává především moduly pro interaktivitu (uživatel může reagovat na prezentaci – měnit parametry objektů) a animace (změna barvy, parametru, pohyb po křivce). Závažnou změnou je modularizace, tedy rozdělení prvků SMILu do skupin – modulů, což umožňuje použít vybrané vlastnosti SMILu k doplnění jiného formátu. Kupříkladu animační moduly jsou použity v SVG. SMIL 2.0 obsahuje celkem 45 modulů rozdělených do deseti skupin:
- Animation Modules: Moduly obsahující elementy a atributy k začlenění animace do dokumentu. Některé animační moduly přebírá SVG (samozřejmě s jistými odlišnostmi).
- Content Control Modules: Moduly obsahující atributy a elementy pro kontrolu obsahu (rozhodovací konstrukce). Jde o moduly, které zjišťují informace o systému návštěvníka – rychlost připojení, rozlišení, jazyk a podobně. Závisle na zjištěných datech je možné poskytnout návštěvníkovi odpovídající obsah, například audio v jím preferovaném jazyce. Část tohoto modulu byla obsažena již ve SMIL 1.0, a to v podobě elementu
switch
pro rozhodovací konstrukci. - Layout Modules: Moduly pro návrh (rozložení) prezentace. Obsahem jsou zejména elementy
root-layout
,layout
aregion
. Tento modul nepopisuje pouze rozvržení dokumentu, ale také hlasitosti audio a video médií. Tento modul popisuje spíše vzhled než sémantiku. - Linking Modules: Moduly určené k tvorbě odkazů (ze SMIL 1.0 přetrvávají elementy
anchor
,a
). - Media Object Modules: Moduly sloužící k začlenění médií do dokumentu (
audio
,video
,img
a mnoho dalších elementů). - Matainformation Modules: Metainformační moduly reprezentované podobně jako v (X)HTML elementem
meta
a nově elementemmetadata
, který pracuje s RDF. - Structure Modules: Strukturní moduly popisují rozčlenění dokumentu (elementy
smil
,head
,body
a jejich atributy). - Timing and Synchronization Module: Časovací a synchronizační moduly (
par
,seq
a další nové elementy a atributy). - Time Manipulations Module: Moduly pro změny působení času. Obsahem jsou například atributy, které nastavují rychlost přehrávání médií – zrychlení či zpomalení oproti normálu.
- Transition Effects Module: Modul pro tvorbu přechodů (změna barvy v určitém časové úseku).
Výsledkem použití všech modulů je velmi efektivní multimediální prezentace srovnatelná třeba s často používaným Power Pointem.
Mohlo by vás také zajímat
-
Fandíme českým sportovcům a rozdáváme hosting ZDARMA!
26. července 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Jak se chránit před podvody na internetu – část 1
8. října 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024
Stacy
Kvě 19, 2010 v 18:44Volný rozložení Facebook pozadí!
http://www.facebookdig.com/czech/facebook-layouts.php