gpt4 book ai didi

java - 如何正确使用JavaFX MediaPlayer?

转载 作者:行者123 更新时间:2023-12-02 06:15:48 24 4
gpt4 key购买 nike

我正在编写一个简单的游戏并尝试播放声音,但当我创建它抛出的 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 场景图形控件。

在 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);
}
}

关于java - 如何正确使用JavaFX MediaPlayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22490064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com