OSMF: Videos, Bilder, Sounds und SWF nacheinander abspielen

Im ersten Codebeispiel zum Open Source Media Framework (OSMF) wurde gezeigt, wie man eine Videodatei abspielt (z.B. .flv oder .f4v).

Wie dort bereits angedeutet, ist das OSMF jedoch nicht auf Videos beschränkt. In diesem Artikel wird gezeigt, wie man auch andere Medientypen abspielt. Zusätzlich wird ein Sequenz erstellt, in der einige Medienelemente automatisch nacheinander abgespielt werden.

Videos, Bilder, Sounds und SWF

Das Open Source Media Framework (OSMF) kann neben Videos auch Bilder, SWFs oder Sounds abspielen. Dazu werden folgende Klassen verwendet:

  • VideoElement für Videos (z.B. .flv, .f4v, etc.)
  • SWFElement für kompilierte Flashfiles (.swf)
  • ImageElement für Bilder (z.B. .jpg, .png, .gif
  • AudioElement für Sounds (z.B. .mp3 oder .m4a)

Das Tolle daran ist, dass das Laden und Abspielen immer nach dem gleichen Prinzip funktioniert. Man muss also nicht wissen, welche ActionScript-APIs im Hintergrund eingesetzt werden, da dies gekapselt ist.

Für jeden Medientyp gibt es eine entsprechende Klasse, die den spezifischen Ladevorgang implementiert (NetLoader, SWFLoader, ImageLoader, SoundLoader).

[xml]
new VideoElement( new NetLoader(), new URLResource(myVideoURL))
new AudioElement( new SoundLoader(), new URLResource(myMP3URL))
new ImageElement( new ImageLoader(), new URLResource(myImageURL))
new AudioElement( new SoundLoader(), new URLResource(myMP3URL))
[/xml]

Medienelemente hintereinander abspielen

Es ist sehr einfach, eine sequenzielle Abfolge zu erstellen. Die Klasse heißt SerialElement. Diesem Element kann man per addChild nun einzelne Medienelemente hinzufügen, die dann einfach hintereinander angezeigt werden.

[xml]
var serialElement:SerialElement = new SerialElement();
serialElement.addChild ( new VideoElement( new NetLoader(), new URLResource(myVideoURL)) );
serialElement.addChild ( new AudioElement( new SoundLoader(), new URLResource(myMP3URL)) );

[/xml]

Anzeigedauer

Da z.B. Bilder keine Dauer haben, kann man die Anzeigedauer mithilfe eines TemporalProxyElement-Objekts festlegen. Das Objekt wird mit einer Dauer in Sekunden (im Beispiel 3s) und einem Medienelement initiert.

[xml]
serialElement.addChild
( new TemporalProxyElement
( 3, new ImageElement( new ImageLoader(), new URLResource(myImageURL)))
);
[/xml]

Beispiel

Hier ein kleines Beispiel, dass mehrere Elemente hintereinander anzeigt. Zuerst steht ein Bilder für drei Sekunden, dann folgt ein kurzes Videos. Es folgt eine MP3-Datei und zuletzt ein SWF-File. Wie man sieht, kann die Sequenz über die Play-/Pausebuttons auch angehalten werden. Beispiel anschauen

[xml]









[/xml]

[ad]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert