如何正确使用JavaFX MediaPlayer?

我正在写一个简单的游戏并试图播放声音,但是当我创建它抛出的Media对象时我无法使它工作IllegalArgumentException。我不是Java编码员,可以提供任何帮助。这是一个示例代码:

import javafx.scene.media.Media;

import javafx.scene.media.MediaPlayer;

public class Main{

public static void main(String[] args) {

Media pick = new Media("put.mp3"); //throws here

MediaPlayer player = new MediaPlayer(pick);

player.play();

}

}

显然“ put.mp3”存在并位于正确的目录中,我使用以下方法检查了路径:

System.out.println(System.getProperty("user.dir"));

我在这里做错了什么?

回答:

问题是因为您试图在之外运行JavaFX场景图控件JavaFX Application thread

运行JavaFX应用程序线程内的所有JavaFX场景图节点。

您可以通过扩展JavaFX Application类并覆盖该start()方法来启动JavaFX线程。

public class Main extends Application {

@Override

public void start(Stage primaryStage) {

Media pick = new Media("put.mp3"); // replace this with your own audio file

MediaPlayer player = new MediaPlayer(pick);

// Add a mediaView, to display the media. Its necessary !

// This mediaView is added to a Pane

MediaView mediaView = new MediaView(player);

// Add to scene

Group root = new Group(mediaView);

Scene scene = new Scene(root, 500, 200);

// Show the stage

primaryStage.setTitle("Media Player");

primaryStage.setScene(scene);

primaryStage.show();

// Play the media once the stage is shown

player.play();

}

public static void main(String[] args) {

launch(args);

}

}

以上是 如何正确使用JavaFX MediaPlayer? 的全部内容, 来源链接: utcz.com/qa/429412.html

回到顶部