Hallo Leute,
ich schaue mir gerade JavaFX 2.2 an und habe mit Eclipse ein kleines Beispiel programmiert das eigentlich nur eine mp3-datei abspielen soll:
package org.test.javafx.media.test;
import javafx.application.Application;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
public class MediaPlayerTest extends Application {
@Override
public void start(Stage arg0) throws Exception {
MediaPlayer mp = new MediaPlayer(new Media("file:///home/myhome/Downloads/m.mp3"));
mp.play();
}
public static void main(String[] args) {
Application.launch(MediaPlayerTest.class, args);
}
}
Leider bekomme ich beim starten folgende Exception(s) um die Ohren geflogen:
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
at java.lang.Thread.run(Thread.java:722)
Caused by: MediaException: MEDIA_UNSUPPORTED : com.sun.media.jfxmedia.MediaException: "Fehler: Media Audio-Format nicht unterstützt" : com.sun.media.jfxmedia.MediaException: "Fehler: Media Audio-Format nicht unterstützt"
at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:125)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:446)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:365)
at org.test.javafx.media.test.MediaPlayerTest.start(MediaPlayerTest.java:12)
at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication$3$1.run(GtkApplication.java:82)
... 1 more
Caused by: com.sun.media.jfxmedia.MediaException: "Fehler: Media Audio-Format nicht unterstützt"
at com.sun.media.jfxmediaimpl.MediaUtils.nativeError(MediaUtils.java:331)
at com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMedia.init(GSTMedia.java:50)
at com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMedia.<init>(GSTMedia.java:33)
at com.sun.media.jfxmediaimpl.platform.gstreamer.GSTMediaPlayer.<init>(GSTMediaPlayer.java:39)
at com.sun.media.jfxmediaimpl.platform.gstreamer.GSTPlatform.prerollMediaPlayer(GSTPlatform.java:100)
at com.sun.media.jfxmediaimpl.platform.PlatformManager.createMediaPlayer(PlatformManager.java:173)
at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:260)
at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:139)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:403)
... 9 more
Komischerweise funktioniert alles einwandfrei unter xbuntu 12.04. Heißt ich habe vielleicht irgendeine lib nicht installiert. Das könnte auch die "...platform.gstreamer.GST..."-Zeilen in den Exceptions erklären. Allerdings habe ich (meines wissens nach) alle wichtigen GStreamer-lib/plugins installiert:
## per Hand sinnlose Zeilen entfernt ;) ##
[user@acerv3 ~]$ yaourt -Ss gstreamer
extra/gstreamer0.10 0.10.36-1 [installed]
extra/gstreamer0.10-bad 0.10.23-2 [installed]
extra/gstreamer0.10-bad-plugins 0.10.23-2 (gstreamer0.10-plugins) [installed]
extra/gstreamer0.10-base 0.10.36-1 [installed]
extra/gstreamer0.10-base-plugins 0.10.36-1 (gstreamer0.10-plugins) [installed]
extra/gstreamer0.10-ffmpeg 0.10.13-1 (gstreamer0.10-plugins) [installed]
extra/gstreamer0.10-good 0.10.31-1 [installed]
extra/gstreamer0.10-good-plugins 0.10.31-1 (gstreamer0.10-plugins) [installed]
extra/gstreamer0.10-ugly 0.10.19-2 [installed]
extra/gstreamer0.10-ugly-plugins 0.10.19-2 (gstreamer0.10-plugins) [installed]
extra/phonon-gstreamer 4.6.2-1 [installed]
Bekommt irgendjemand bei euch das Beispiel zum laufen bzw. weiß was ich tun muss damit dieses kleine Beispiel funktioniert?
Ich bin für jede Hilfe dankbar!!!
VIele Grüße
MRC
EDIT: Habe Arch_x86 auf in einer VM installiert, leider geht das Beispiel oben auch hier nicht 🙁
EDIT2: Fix Ubuntu auf dem gleichen Laptop per VM installiert, hier funzt es. Anscheinend sind die Vorraussetzungen für JavaFX unter Arch nicht erfüllt:
http://docs.oracle.com/javafx/2/system_requirements_2-2/jfxpub-system_requirements_2-2.htm
For Linux platform, install the following: libavcodec52 and libavformat52 on Ubuntu Linux 10.04, 10.10, 11.04 or equivalent, or libavcodec53 and libavformat53 on Ubuntu Linux 11.10, 12.04 or equivalent. (Encoding type: AAC audio, MP3 audio, H.264 video, and HTTP Live Streaming.) Note that installing libavformat automatically causes libavcodec to be installed.
Ich weiß aber das libavformat/avcodec mit ffmpeg installiert werden:
http://www.archlinux.org/packages/extra/i686/ffmpeg/files/
EDIT:3 Da ffmpeg aus den Arch-Repos schon libavformat/avcodec in Version 54 da hat scheint es so das dass JDK mich nicht mag 🙁
Habe versucht in /usr/lib symbolische Verknüpfungen "ln -s libavformat.so libavformat.so.53" etc anzulegen: kein Erfolg 😢
EDIT4: Habe auf der Ubuntu-VM mal libavcodec53/libavformat53 per apt gelöscht. Jetzt funzt es da auch nicht mehr. Heißt ich muss iwie die alten Versionen in meine Arch-Installation prügeln.