JavaFX Media Player无法正常工作 [英] JavaFX Media Player not working
问题描述
当我运行此代码时,我得到两个例外。我正确安装了Java 8,它是oracle版本(不是OpenJDK)。这个相同的代码工作正常并在Windows 8上使用Java 8播放媒体。我不想使用应用程序,因为我试图从更多(非JavaFX)代码播放此媒体。
When I run this code, I get two exceptions. I have Java 8 installed correctly and it is the oracle version (NOT OpenJDK). This same code works fine and plays the media without any problems on Windows with Java 8. I do not want to use an Application because I am trying to play this media from more (Non-JavaFX) code.
import javafx.embed.swing.JFXPanel;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
public class Test {
public static void main(String[] args) {
new JFXPanel();//Required to initialize JavaFX or I get this exception: Exception in thread "Thread-0" java.lang.IllegalStateException: Toolkit not initialized
String fileLocation = "file:/home/chris/Music/jawstheme.mp3";
System.out.println(fileLocation);
Media hit = new Media(fileLocation);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
}
}
这是我得到的例外。
file:/home/chris/Music/jawstheme.mp3
Exception in thread "main" MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player!
at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:414)
at Test.main(Test.java:11)
Caused by: com.sun.media.jfxmedia.MediaException: Could not create player!
at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:222)
at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:104)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:467)
... 2 more
推荐答案
你没说,但我打赌你在使用Ubuntu。
You didn't say but I bet you're using Ubuntu.
这是JavaFX的一个bug 。
错误报告: https://bugs.openjdk.java .net / browse / JDK-8150503
This is a bug of JavaFX.
Bug report: https://bugs.openjdk.java.net/browse/JDK-8150503
它已在Java 9中修复,所以更新到Java 9将解决这个问题。
It's fixed in Java 9, so updating to Java 9 will solve this problem.
使用 org .frice.utils.media.AudioManager.play
由 https://github.com提供/ icela / FriceEngine (这是一个1.6mb的jar库,你只需使用它的 AudioManager.play
,支持mp3。)
Use org.frice.utils.media.AudioManager.play
provided by https://github.com/icela/FriceEngine (it's a 1.6mb jar library, you just have to use it's AudioManager.play
, mp3 is supported).
将您的mp3文件转换为wav格式,JavaFX支持 MediaPlayer
。
Convert your mp3 file into wav format, which is supported by JavaFX MediaPlayer
.
不要在Ubuntu上运行它。
Don't run this on Ubuntu.
这篇关于JavaFX Media Player无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!