Ausarbeitung zum Vortrag von Robert König vom 07.06.2003 im Rahmen des Seminars "XML für Fortgeschrittene"
bei Oliver Becker am Institut für Informatik an der Humboldt-Universität zu Berlin.
Smil ist eine auf XML basierende Markup-Sprache, die das einfache Verwalten von interaktiven, audiovisuellen
Präsentationen erlaubt. Mit SMIL kann sowohl das Layout als auch das zeitliche Verhalten einer Multimedia Präsentation
beschrieben werden.
Folgende Einsatzszenarios denkbar:


Der nun folgende Abschnitt soll einen groben Überblick über die Syntax von SMIL und seiner Elemente und geben.
Das smil Element ist das Wurzelelement, dass alle weiteren Elemente umschließt.
Inneralb des Wurzelelements befindet sich der Dokumentenkopf
<head>...</head>
und der Dokumentenkörper.
<body>...</body>
Der Dokumentenkopf enthält Informationen über das genaue physische Layout des Mediums, in dem der SMIL-Inhalt
wiedergegeben werden soll, und bestimmte Metadaten über das Dokument, etwa, wer es geschrieben hat, wann es
geschrieben wurde etc. Desweiteren enthält er Angaben über die einzelnen Regionen der Präsentation, deren Grösse und
Gestalt. Es enthält keinerlei Informationen zur Zeitsynchronisierung der einzelnen Quellen der Präsentation.
Der Dokumentenkörper enthält alle Informationen, die zeitlich bedingt sind, sowie Verknüpfungsinformationen, die mit dem
Dokument zusammenhängen. Somit erhält man das Grundgerüst eines SMIL Dokumentes:
| <smil> | |||
| <head> | |||
| <layout> | |||
| <root-layout background-color="#008000" height="500" width="500"/> | |||
| <meta name="author" content="Robert Koenig"/> | |||
| <meta name="copyright" content="(C) 2003"/> | |||
| <region id="Region1" top="50" left="150" width="200"/> | |||
| <region id="Region2" left="150" top="150" height="200" width="200" fit="fill" /> | |||
|
...
|
|||
| </layout> | |||
| </head> | |||
| <body> | |||
|
...
|
|||
| </body> | |||
| </smil> |
Nachdem die Regionen definiert wurden, werden nun die eigentlichen Quellen mit diesen verknüpft. Diese Verknüpfung übernimmt
das ref Element. Ref Elemente sind Kindelemente entweder von par ( für parallel bzw. gleichzeitig ) oder seq ( für sequenz
bzw. nacheinander ) Elementen.

Par-Element: Gleichzeitiger Beginn von mehreren Medien

Seq-Element: Mehrere Medien werden nacheinander wiedergeben

Wie schon in den vorangegangenen Beispielen zu sehen war, können die einzelnen Elemente zusätzliche Attribute mit
entsprechenden Werten enthalten. Einen kurzen Überblick über diese Attribute, deren Bedeutung und Vorkommen
gibt die folgende Tabelle.
| Attribut | Wert |
Bedeutung
|
Vorkommen der Attribute
innerhalb der Elemente |
||
|
<ref>
|
<par>
|
<seq>
|
|||
|
id
|
name
|
Eindeutige ID des Elements |
x
|
x
|
x
|
|
author
|
name
|
Verfassername |
x
|
x
|
x
|
|
copyright
|
Copyright
|
Urheberrechte |
x
|
x
|
x
|
|
begin
|
h,m,s,ms
|
Verzögerung der normalen Clipabspielzeit |
x
|
x
|
x
|
|
dur
|
h,m,s,ms
|
Abspiellänge des Clips |
x
|
x
|
x
|
|
end
|
h,m,s,ms
|
Ende der Abspielzeit relativ zum Clipbeginn |
x
|
x
|
x
|
|
clip-begin
|
h,m,s,ms
|
Interne Clipzeitmarke vom Clipbeginn |
|
|
|
|
clip-end
|
h,m,s,ms
|
Interne Clipzeitmarke vom Clipende |
x
|
|
|
|
endsync
|
first/last/id("id")
|
Beendet das Abspielen der Gruppe nach |
x
|
x
|
|
|
fill
|
freeze/remove
|
Verhalten nach Abspielen |
|
|
|
|
region
|
Regionname
|
Dem Clip eine Region zuweisen |
x
|
|
|
|
repeat
|
Anzahl
|
Anzahl der Wiederholungen |
x
|
x
|
x
|
|
src
|
URL
|
Absolute / Relative URL der Quelle |
x
|
|
|
Abschließend noch ein vollständiges Beispiel eines SMIL Dokuments:

Im folgenden Beispiel wurde die SMIL Präsentation "test.smil" in eine HTML Seite integriert und in einem 480x640 Pixel
großen Abspielbereich angezeigt. Voraussetzung für die korrekte Anzeige der Präsentation ist allerdings, dass der
RealOne Player installiert ist.

Da es jedoch noch an SMIL Playern und deren Verbreitung im WWW mangelt und Web Browser alleine SMIL Dokumente
nicht anzeigen können muss man sich anders behelfen. Eine Möglichkeit sie dennoch in HTML Seiten einzubetten, ist, sie wie
Real-Movies zu behandeln, da die meisten Browser über ein Realplayer Plug-in verfügen bzw.dieses einfach nachzuinstallieren
ist.
Dazu wird zunächst eine Textdatei mit der Endung .ram angelegt ( RealMovie). Diese enthält lediglich die Adresse der SMIL-Datei.
Diese wird ähnlich wie im ersten Beispiel in die HTML Seite integriert. Beim Aufruf dieser HTML-Seite wird das Real-Plug-In gestartet,
um die gewünschte Präsentation anzuzeigen.
Für SMIL 1.0 gab es mit HPAS im März 1998 den ersten Player überhaupt. Auch Apples Quicktime 4.1 und der Realplayer 8.0
unterstützen die erste Version von SMIL, genauso wie zahlreiche Java basierte Player wie Soja von Helio, Schmunzel von SunTREC Salzburg
und X-Smiles von TML laboratory.
Im August 2001 wird SMIL 2.0 offizielle Empfehlung des W3C ( Recommendation ). Player, die alle die komplette SMIL 2.0 Spezifikation
implementiert haben sollen sind die RealOne Platform von Realnetworks, Grins von Oratrix und RubiC von Roxia.
Da SMIL auch für Mobile Applikationen (MMS-Multimedia Messaging Service) genutzt werden kann, gibt es auch dafür eine ganze Reihe
von Playern, die diese Geräte emulieren. Ein solcher Player wäre der SMIL Player von InterObject, aber auch andere Hersteller bieten
solche Technologien.
Programme zum Erstellen und Verändern bzw.Warten von SMIL Dokumenten gibt es seit der Empfehlung immer mehr. Teilweise sind
diese frei erhältlich wie z.B. der Tagfree 2000 SMIL Editor oder RealSlideshow Basic von Realnetworks. Doch auch kommerzielle
Software wie Adobes GoLive kommen in Frage. Doch wie gesagt, reicht auch ein ganz normaler Texteditor zum Bearbeiten aus.
Da SMIL auf XML basiert, sind XML Editoren wie XML Spy eine wertvolle Hilfe im Umgang mit großen Dokumenten.