12.11Medien abspielen
JavaFX unterstützt das Abspielen von Audio- und Videoformaten, wobei es im Moment gar nicht so schlecht aussieht, da Oracle auf die Container-Formate/Codecs der quelloffenen GStreamer-Bibliothek[ 111 ](Siehe http://www.gstreamer.com/ und auch http://www.gstreamer.com/.) zurückgreift und so MP3, WAV, ACC, AIFF, PCM, MPEG-4 (H.264/AVC mit AAC) und FLV (VP6 mit MP3) abspielen kann.[ 112 ](Unterstützte Formate zählt auch die Javadoc unter http://download.java.net/jdk8/jfxdocs/javafx/scene/media/package-summary.html auf.)
Die API ist sehr einfach, und um einen Hintergrundsound abzuspielen, ist bloß ein Einzeiler nötig. Folgende drei Typen im Paket javafx.scene.media stehen im Mittelpunkt:
Media: Die Klasse repräsentiert eine Audio- oder Videoressource. Sie wird über einen URI aufgebaut und hat Eigenschaften wie Dauer, Ausmaße (bei Videos) und Metadaten.
MediaPlayer: Die Klasse repräsentiert Zustände eines Medienspielers mit Eigenschaften wie Lautstärke, Anfangs-/Endposition und Abspielgeschwindigkeit und bietet Methoden wie play(), pause() oder stop(). Dabei kann der Media-Player Ereignisse auslösen. Eine grafische Repräsentation ist der MediaPlayer nicht.
MediaView: Die MediaView-Klasse stellt das Video tatsächlich dar und lässt sich als normaler JavaFX-Knoten in den Szenegraphen setzen.
[zB]Beispiel
Binde eine Videowiedergabe ein, die nach dem Laden sofort losspielt:
Media media = new Media( uri.toString() );
MediaPlayer player = new MediaPlayer( media );
player.setAutoPlay( true );
MediaView mediaView = new MediaView( player );
stage.setScene( new Scene( new Group( mediaView ) ) );
Für kleine Audiodateien gibt es eine spezielle Klasse AudioClip, die ohne große Verarbeitung schnell Audiodateien abspielt. Die Dateien sollten nicht zu groß sein, denn sie werden unkomprimiert im Speicher gehalten.
[zB]Beispiel
Spiele eine Audiodatei ab: