如何正确使用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