2.3 Inhalte des body-Elements

Das body-Element enthält Elemente zur Koordination und Synchronisation, Angaben zu den Multimedia-Elementen sowie Hyperlinks.

Zur Koordination und Synchronisation dienen die Elemente

  • par
  • seq

(siehe 2.3.1).

Mögliche Präsentationselemente sind

  • ref
  • animation
  • audio
  • img
  • video
  • text
  • textstream .

(siehe 2.3.2).

Weiterhin ist im body-Tag das Verknüpfungselement

  • a ,

(siehe 2.3.3) sowie - wie im head-Tag - das Alternativen-Element

  • switch

(siehe 2.3.4) möglich.

Als Attribut für das body-Element ist in SMIL1 nur die XML-obligatorische id vorgesehen.

2.3.1 Die Elemente par und seq

Diese Elemente dienen beide der Koordination und Synchronisation des multimedialen Inhalts.

Die Inhalte des par-Elemnts werden parallel, die des seq-Elements sequentiell in den Verlauf der Präsentation eingebunden.

Prinzipiell können auch die Elemente innerhalb des par-Elements sequentiell über der Zeit angeordnet sein, die Synchronisationsangaben aller enthaltenen Elemente beziehen sich aber immer auf die Anfangszeit des umschliessenden par-Elements, während die Inhalte des seq-Elements immer relativ zum Ende des vorangegangenen Elementes synchronisiert sind.

Da keine negativen Zeitangaben definiert werden sollen bedeutet dies, dass sich die Inhalte eines seq-Elements zeitlich nicht überlappen können, die des par-Elements aber schon.

Generell erlaubt die Spezifikation eine beliebige und beliebig tiefe Verschachtelung der beiden Element-Typen ineinander. Einige Implementierungen erlauben aber nicht die Verwendung mehrer par-Elemente als Geschwisterknoten. Deshalb sollte die Zuweisung z.B. des region-Attributs immer direkt am Präsentationselement erfolgen, obwohl es definitionsgemäß auch den Elementen par und seq zugewiesen werden darf.

Die Synchronisationselemente können folgende Attribute haben:

  • abstract: Kurze Inhaltsbeschreibung
  • author: Der Name des Autors
  • begin: Bestimmt den Anfang des Elements, indem ein Zeitwert oder ein Ereignis angegeben wird.
  • copyright: Besitzanspruch auf was auch immer.
  • dur: Explizite Zeitdauer des Elements. Möglich ist auch der Wert "indefinite", dessen Semantik wohl am besten mit "so lange wie's geht" beschrieben ist.
  • end: Bestimmt das Ende des Elements, indem ein Zeitwert oder ein Ereignis angegeben wird.
  • id: obligatorische XML-Tag-ID
  • region: Ist in par- und seq-Elementen nicht zulässig, wenn sich die Angabe auf eine in der SMIL1-"basic layout language" beschriebene region bezieht. Das Attribut ist für den Fall vorgesehen, dass eine andere Layoutsprache für diese Elemente relevante Angaben enthalten kann.
  • repeat: Anzahl gewünschter Wiederholungen des Elements. Es kann eine natürliche Zahl oder der Wert "indefinite" angegebe werden. Letzteren könnte man semantisch mit "so oft wie's geht" beschreiben.
  • title: Titel, Überschrift des Teils der Präsentation. Diese Angabe wird vor allem empfohlen, um SMIL-Editoren das Handwerk zu erleichetern.

sowie die Testattribute (2.3.4)

  • system-bitrate
  • system-captions
  • system-language
  • system-overdub-or-caption
  • system-required
  • system-screen-size
  • system-screen-depth

Zusätzlich kann dem par-Element noch das Attribut

  • endsync: default-Wert ist "last", die möglichen Werte mit ihrer Semantik sind:
    • "first": Das par-Element endet mit dem kürzesten enthaltenen Element
    • "last": Das par-Element endet mit dem längsten enthaltenen Element
    • id-ref: Das par-Element endet mit dem (Kind-)Element, das die entsprechende Tag-id aufweist. Dies Option wird allerdings von einigen SMIL-Viewern nicht interpretiert, oder sogar als Fehler angezeigt(RealONE).

anhängen.

Die möglichen (Element-)Inhalte der Synchronistionselemente sind identisch mit denen des body-Elements.

2.3.2 Die Präsentationselemente

Die Präsentationsinhalte werden über die Elemente ref, animation, audio, img, video, text und textstream eingebunden. Prinzipiell darf jedes dieser Tags jede beliebige Text-, Bild-, Video- oder Audioquelle referenzieren. Eine Übereinstimmung von Quellentyp und Elementtyp ist allerdings wünschenswert, um das SMIL-Dokument lesbarer zu machen. Wenn der Autor sich über den Typ des einzubindenden Mediums im Unklaren ist, soll das ref-Element gewählt werden.

Der Typ der Quelldaten soll über den "Multimedia Internet Message Extension"-Typ ("MIME-type") [4] ermittelt werden, der entweder im type-Attribut angegeben sein kann, oder im Application-Layer des Protokolls, mit dem auf die Quelle zugegriffen wird. RealONE hält sich abweichend allein an die Extension.

Die SMIL1-Spec unterscheidet die Präsentationsquellen hier noch in zwei Gruppen. Kontinuierliche Elemente wie Animationen, Videos und Audios, die sich durch eine intrinsische Länge auszeichnen. Diskrete Elemente, wie Texte oder unbewegte Bilder, denen keine intrinsische Länge anhängt.

Präsentationselemente können folgende Attribute haben:

  • abstract: Kurze Inhaltsbeschreibung
  • alt: Ein alternativer Text, der als Ersatz benutzt werden kann, wenn das Objekt selbst für das Programm nicht darstellbar ist. Kann auch als Zusatzinformation angezeigt werden, die zB bei einem Rollover der Maus aufgeblendet wird.
  • author: Der Name des Autors
  • begin: siehe 2.3.1 .
  • clip-begin: Nur für kontinuierliche Medien. Gibt an, dass das Element nicht von Beginn an, sondern erst ab einer bestinmmten Stelle abgespielt werden soll. Der Wert des Attributs hat das Format einer SMPTE-Zeitangabe(siehe auch SMIL1-Spec).
  • clip-end: Wert wie clip-begin. Gibt vor, an welcher Stelle das kontinuierliche Element abgebrochen werden soll
  • copyright: siehe 2.3.1 .
  • dur: siehe 2.3.1 .
  • end: siehe 2.3.1 .
  • fill. Mögliche Werte sind "remove" und "freeze". Bezeichnet, was mit einem visuellen Darstellungselement nach dessen Zeitende zu geschehen hat. "remove " bedeutet, dass es entfernt wird, entstehende leere Stellen werden mit der Hintergrundfarbe gefüllt. "freeze" sagt, dass das Bild bzw der letzte Zustand der Animation solange erhalten bleiben sollen, bis es von einem anderen Darstellungselement überlagert wird.
  • id: siehe 2.3.1 .
  • longdesc: Der Wert diese Attributs ist eine URI. Diese soll auf eine ausführlichere Beschreibung des Darstellungsobjekts verweisen.
  • region: Bezeichnet die id der region (2.2.2.2), in der das Element darzustellen ist.
  • src: URI-Quelle des Präsentationselementes.
  • title: siehe 2.3.1 .
  • type: MIME-Type der mit src beschriebenen Quelle.

sowie alle Testattribute (2.3.4).

Die Präsentationselemente können anchor-Elemente(2.3.3) enthalten.

2.3.3 Hyperlink-Elemente

Das a-Element wird - wie in HTML - dazu verwendet, einen Verweis auf eine anderes vollständiges Darstellungsobjekt zu verwirklichen. Es kann ein Präsentationselement (2.3.2) oder ein Koordinationselement (2.3.1) enthalten. Die Darstellungsfläche des enthaltenen Elements bildet den Bildschirmabschnitt, der auf Mausklick den Verweis aktiviert.

Bsp.:
<a href="http://www.tollesachen.de/amdollsten.xhtml">
  <img src="bild1.jpg"/>
</a>

Bei Aktivierung soll das Programm versuchen, das Dokument hinter dem Verweis, den der Wert des href-Attributes im a-Element angibt, darzustellen.

Das anchor-Element dient als Verweisziel innerhalb einer Präsentation. Der Wert seines id-Attributs ist bei der Referenzierung anzugeben (#-Teil der URI).

Bsp.:
Verweisendes Dokument:
<html>
<body>
  <a href="http://www.supersite.de/super.smil#besonderstoll">hier toll</a>
</body>
</html>

Zieldokument (also http://www.supersite.de/super.smil):
<smil>
<body>
  <seq>
    <audio src="murmelraeusper.mp3"/>
    <audio src="humbahumba.mp3">
      <anchor id="besonderstoll"/>
    </audio>
  </seq>
</body>
</smil>

Bei Aktivierung im verweisenden Dokument soll das Programm versuchen, das Zieldokument ab dem Beginn des referenzierten anchor-Elements im Zieldokument darzustellen. Hier würde also nur das zweite audio-Element abgespielt.

2.3.4 Testattribute und das switch-Element

Die switch-Elemente dienen dazu dem darstellenden Programm die verschiedenen enthaltenen Tags als Alternativen anzubieten.

Innerhalb des head-Tags kann switch verschiedene layout-Elemente anbieten, im body-Tag kann der switch alle Elemente enthalten, die auch für das body-Tag selbst zulässig sind (Kapitel 2.3). Hier dürfen auch verschiedene Elementtypen gemischt werden.

Die Entscheidng, welche Alternative gewählt wird, soll anhand zweier Kriterien getroffen werden.

Des erste Kriterium ist die Fähigkeit des Programms, den angebotenen Inhalt überhaupt zu interpretieren.

Das zweite Kriterium sind in SMIL definierte sogenannte Testattribute. Diese müssen als wahr oder falsch im Sinne von "Attribut ist gegeben" oder "Attribut ist nicht gegeben" ausgewertet werden. Eine Alternative darf nur gewählt werden, wenn alle ihre Attribute zu wahr ausgewertet werden. Folgende Testattribute sind in SMIL 1 definiert:

  • system-bitrate: Gibt einen Minimalwert für die Übertragungsbandbreite der Verbindung zur Quelle des Elements in Bits/s an.
  • system-captions: Kann "on" oder "off" sein. Das interpretierende Programm soll prüfen, ob eine eigene Programmeinstellung entsprechend dem angegebenen Wert gesetzt ist. "on" bedeutet, dass der Benutzer des Programms die Anzeige von Textäquivalenten zu Audiodateien wünscht (zB. weil er taub ist oder keine Lautsprecher am Rechner hat); "off" bedeutet, dass dem nicht der Fall ist.
  • system-language: Der Attributwert soll eine kommagetrennte Liste mit Sprachbezeichnern nach RFC1766 sein. Das interpretierende Programm soll prüfen, ob die aktuelle System- oder Benutzersprache in dieser Liste vorhanden ist.
  • system-overdub-or-caption: Gültige Werte sind "overdub" und "caption", eine entsprechende Benutzereinstellung wird auf Übereinstimmung geprüft. "overdub" bedeutet, dass der Ersatz eines in der vorgesehenen Form nicht abspielbaren Audio-Elements durch ein anderes Audio-Element bevorzugt wird, "caption" präferiert textuellen den Ersatz.
    Bsp.:
    <switch>
      <audio system-bitrate="128000" src="audio128.mp3"/>
      <audio system-overdub-or-caption="overdub"
             system-bitrate="24000" src="audio24.mp3"/>
      <text system-overdub-or-caption="caption" src="bla.txt">
      </text>
    </switch>
    (*)
  • system-required: gibt eine Dateinamenerweiterung an, die das Programm als Markierung für eine von ihm lesbare Datei erkennen muss, um hier "wahr" auszuwerten.
  • system-screen-size: Gibt die minimal erforderliche Darstellungsfläche des SMIL-Viewers in der Form HöheXBreite an.
  • system-screen-depth: Gibt die minimal erforderliche Farbtiefe in Bit des SMIL-Viewers an.

Achtung, zusammengesetzte Attributbezeichner haben in SMIL 2 eine Änderung der schreibweise erfahren. Sie werden jetzt im sogenanten "camel case" geschrieben. So wird z.B "system-bitrate" zu "systemBitrate". Bedauerlicherweise sind nicht alle Viewer in dieser Beziehung abwärtskompatibel. Der Referenz-Viewer RealONE zeigt hier leider ein in keiner Weise logisch nachvollziehbares Verhalten. So wird z.B. system-required="mp3" zu "false" ausgewertet, schreibt man den Attribut-Namen aber falsch - system-requird="mp3" - wird die Quelle(ein mp3-file!) abgespielt. Man darf auf die Gamma-Version hoffen ...

Testattribute dürfen auch außerhalb des switch-Tags verwendet werden um zu bestimmen, ob ein bestimmtes Element dargestellt werden soll, oder nicht.