[英]Javafx music player not working
我正在用Java编写游戏,所以我决定向其中添加音乐。 我尝试使用以下代码:
URL resource = getClass().getResource("music.mp3");
MediaPlayer a = new MediaPlayer(new Media(resource.toString()));
a.setOnEndOfMedia(new Runnable() {
public void run() {
a.seek(Duration.ZERO);
}
});
a.play();
但是由于某种原因,我得到了这个错误:
music.mp3文件与我正在运行该文件的类位于同一文件夹中,并且代码在tick()方法中运行。 有人知道我该如何解决吗?
谢谢,卢卡斯
您正在尝试从JavaFX应用程序的上下文外部执行上述代码。 MediaPlayer
是JavaFX组件,因此依赖于正在初始化的Toolkit,您(默认情况下)不能随意随意旋转JFX组件。
“正确”的方法是将JFX Application
子类化,然后从那里启动您的应用程序,这将正确地初始化JFX平台。
“黑客”方式是在Swing EDT中运行以下代码行:
new JFXPanel();
...这也会带来初始化JFX工具包的副作用,并允许您创建其他JFX组件。
正如评论中指出的那样,由于Java 9,您可以使用以下更简单的方法:
Platform.startup(() -> {
//Code to run on JFX thread
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.