HOME - SMIL: Version 1.0 vom 04.04.2000 © Wolfgang von Keitz


Vorwort
Grundlagen
Layout

Zeit

Bilder und Texte
SMIL und HTML
Referenz
Beispiele
Anhang
Quellen

3. Zeitliche Steuerung und Synchronisation

3.3. Synchronisationselemente

Wie die bislang benutzten Beispiele zeigen, werden mehrere im SMIL-Dokument spezifizierte Medienobjekte in der Reihefolge präsentiert, in der sie im SMIL-Dokument genannt sind. Die Präsentationsfolge mehrerer Medienobjekte entspricht ihrer Reihenfolge.

SMIL kennt zwei Synchronisationselemente, das <seq>-Element um Medienobjekte explizit in einer Folge zu präsentieren, und das <par>-Element, um Medienobjekte simultan zu präsentieren. Die beiden Elemente werden durch eine <seq>- bzw. <par>-Tag geöffnet und durch einen </seq> bzw. </par>-Tag geschlossen. Die Medienelemente, die in einer Folge oder synchron präsentiert werden sollen, werden von den Synchronisationselementen eingeschlossen.

3.3.1. Zeitliche Folge von Objekten – das <seq>-Element

In den bislang benutzten Beispielen wurden quasi automatisch mehrere Medienobjekte in einer Folge präsentiert. Dies wird durch eine Voreinstellung erreicht. Wird kein Synchronisationselement angegeben, gilt bei mehreren Medienobjekten automatische das <seq>-Element.

Sollen zwei Objekte explizit nacheinander präsentiert werden, müssen die beiden Objekte mit Hilfe des <seq>-Elements in eine Reihenfolge gebracht werden. Beispiel:

<smil>
 <head>
  <layout>
   <root-layout width="300" height="200" background-color="white" />
   <region id="bild" left="25" top="25"  width="216" height="181" />
  </layout>
 </head>
<body>
 <seq>
  <img src="bild.jpg" alt="Bild" region="bild" dur="6s" begin="2s" />
  <img src="bild2.jpg" alt="Bild" region="bild" dur="6s" begin="2s" />
 </seq>
</body>
</smil>

Das erste Bild "bild.jpg" wird nach 2 Sekunden für 6 Sekunden sichtbar; nach einer Pause von 2 Sekunden erscheint dann das zweite Bild "bild2.jpg" für weitere 6 Sekunden. Die Präsentationsdauer beträgt insgesamt 16 Sekunden.

3.3.2. Zeitliche Parallelität von Objekten – das <par>-Element

Sollen Objekte zeitgleich präsentiert werden, wird das <par>-Element benutzt. Beispiel:

<smil>
 <head>
  <layout>
   <root-layout width="300" height="300" 
        background-color="white" />
      <region id="bild" left="25" top="25" width="216" height="181" />
      <region id="bild2" left="125" top="125" width="216" height="181" />
  </layout>
 </head>
<body>
 <par>
  <img src="bild.jpg" alt="Bild 1" region="bild1" dur="6s" begin="2s" />
  <img src="bild2.jpg" alt="Bild 2" region="bild2" dur="6s" begin="2s" />
 </par>
</body>
</smil>

Beide Bilder werden nun zeitgleich in zwei Präsentationsbereichen für 6 Sekunden sichtbar. Die Gesamtpräsentationszeit beträgt 8 Sekunden.

3.3.3. begin und end als Attribut eines Synchronisations-elements

Sowohl beim <par>-Element als auch beim <seq>-Element kann die Präsentationszeit mit dem begin- und end-Attribute kontrolliert werden. Mit


<par begin="2s" end="8s">

.....

</par>

wird die Einblendung aller im <par>-Element eingeschlossenen Multimediaobjekte nach 2 Sekunden gestartet; 8 Sekunden nach der Einblendung werden die Objekte wieder ausgeblendet.

3.3.4. Kombination von <seg>- und <par>-Elemente

Beide Elemente können nach Bedarf kombiniert und verschachtelt werden.

3.3.4.1. <seq>-<par>-</par>-</seq>-Folge

In unserem Beispiel wird als erstes das Bild "melonen" präsentiert, gefolgt von den parallel präsentierten Bildern "bild" und "bild2"; den Abschluss bildet das Bild "servants".

<smil>

<head>

<layout>

<root-layout width="300" height="300" background-color="white" />

<region id="bild" left="75" top="50" width="216" height="181" />

<region id="bild1" left="25" top="25" width="216" height="181" />

<region id="bild2" left="125" top="125" width="216" height="181" />

</layout>

</head>

<body>

<seq>

<img src="melonen.jpg" alt="Bild" region="bild" dur="6s" begin="2s" />

<par>

<img src="bild.jpg" alt="Bild 1" region="bild1" dur="6s" begin="2s" />

<img src="bild2.jpg" alt="Bild 2" region="bild2" dur="6s" begin="2s" />

</par>

<img src="servants.jpg" alt="Bild" region="bild" dur="6s" begin="2s" />

</seq>

</body>

</smil>

3.3.4.2. <par>-<seq>-</seq></par>-Folge

Das oben stehende Beispiel wurde dahingehend verändert, dass ein vierter Präsentationsbereich definiert wurde; ferner werden durch die Umstellung der <par>-<seq>-Folge zu Beginn drei Bilder (melonen, bild2 und servants) gezeigt, während abschliessend ein Bild (bild) erscheint.

<smil>

<head>

<layout>

<root-layout width="300" height="300"

background-color="white" />

<region id="bild" left="25" top="0" width="216" height="181" />

<region id="bild1" left="50" top="50" width="216" height="181" />

<region id="bild2" left="125" top="125" width="216" height="181" />

<region id="bild3" left="0" top="175" width="216" height="181" />

</layout>

</head>

<body>

<par>

<img src="melonen.jpg" alt="Bild" region="bild" dur="6s" begin="2s" />

<seq>

<img src="bild2.jpg" alt="Bild 1" region="bild1" dur="6s" begin="2s" />

<img src="bild.jpg" alt="Bild 2" region="bild2" dur="6s" begin="2s" />

</seq>

<img src="servants.jpg" alt="Bild3" region="bild" dur="6s" begin="2s" />

</par>

</body>

</smil>

In diesen beiden Beispielen wurde eine einfache Verschachtelung der <par>- und <seq>-Elemente demonstriert; die Tiefe der Verschachtelung ist nicht begrenzt.

3.3.4.3. Die <par>-<seq>-<par>-Folge

Durch die Gruppierung von Mediaobjekten, die in einer Folge präsentiert werden, können problemfreie Übergänge zwischen den einzelnen Objekten geschaffen werden. Bei der Übertragung von Mediaobjekten, die in Folge präsentiert werden, werden zunächst Daten in einen Zwischenspeicher übertragen (preroll); die Präsentation beginnt erst, wenn ausreichend Daten vorhanden sind. Durch eine <par>-<seq>-<par>-Folge kann erreicht werden, dass Objekte, die nur wenig Bandbreite benötigen, zuerst präsentiert werden (1. <par>-Gruppe), anschliessend werden die Objekte übertragen, die viel Bandbreite benötigen (2. <par>-Gruppe); beide <par>-Gruppen werden durch ein <seq>-Element in eine Folge gebracht. Durch die Einbindung der Folge in ein weiteres <par>-Element (3. <par>-Gruppe) wird erreicht, dass die preroll-Daten der 2. <par>-Gruppe bereits übertragen werden, während die Übertragung der ersten <par>-Gruppe läuft. Wenn die Präsentation der ersten <par>-Gruppe beendet ist, kann die Präsentation der zweiten <par>-Gruppe unmittelbar beginnen, da die preroll-Daten dieser Gruppe ja bereits übertragen wurden. Beispiel:

<body>

<par>

<seq>

<par>

<!-- 1.Gruppe à

<audio ....>

<textstream ....>

</par>

<par>

<!—2. Gruppe à

<video ....>

</par>

</seq>

</par>

</body>

Gruppe 1 besteht aus einem Audioclip und einer Textpräsentation, die simultan präsentiert werden. Mit dem <seq>-Element wird geregelt, dass diese Gruppe vor der Gruppe 2 präsentiert wird. Wäre das <seq>-Element das Element der höchsten Wertigkeit, würde zunächst die 1. Gruppe abgearbeitet; erst nach dem Ende der 1. Gruppe würden die Daten der 2. Gruppe übertragen. Das beide Gruppen umfassende <par>-Element sorgt dafür, dass beide Gruppen als eine Einheit betrachtet werden. Obwohl dies die Präsentationsreihenfolge der Gruppen nicht weiter beeinflusst, wird damit erreicht, dass die zur Verfügung stehende Bandbreite voll genutzt wird. Sobald die Übertragung der 1. Gruppe beginnt, wird die von dieser Gruppe nicht benötigte Bandbreite genutzt, um bereits Daten der 2. Gruppen zu übertragen. Ist die Präsentation der 1. Gruppe beendet, kann die Präsentation der 2. Gruppe ohne weitere Verzögerung beginnen.

3.3.5. Die Wiederholung von Gruppen – das repeat-Attribut

Das repeat-Attribut dient der Steuerung von Wiederholungen. Es kann sowohl in einem Mediaelement als auch in einem Synchronisationselement benutzt werden.

In einem Medialement wird das Attribut wie folgt benutzt:

<video src="video/video1.rm" repeat="2" />

In unserem Beispiel wird das Video "video1" zweimal nacheinander gezeigt.

In einer Gruppe wird das Attribut wie folgt benutzt:


<par repeat="2">

<video src="video/video1.rm" />

<textstream src="texte/liedtext1.rm" />

</par>

In diesem Beispiel wird ein Musikvideo mit eingeblendetem Liedtext zweimal gezeigt.