繁体   English   中英

Javafx音乐播放器无法正常工作

[英]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();

但是由于某种原因,我得到了这个错误:

https://pastebin.com/UPkTbWHh

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM