package application;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
public class Main
{
public static void main(String[] args)
{
String bip = "bip.mp3";
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
}
}
这吐出来了:
线程“main”中的异常java.lang.IllegalArgumentException:期望的文件名作为参数 在com.sun.javafx.css.parser.Css2Bin.main(Css2Bin.java:44)
第一次尝试使用这个新的fangled javaFx ..所以这是我第一次看到这个Css2Bin的东西。结果我不知道它意味着什么。或者它对我的要求。
我真正想做的就是播放一段mp3,但这对标准API来说似乎很难....
答案 0 :(得分:1)
你正试图在java恶魔线程上运行javafx api。为了使用javafx特定的实用程序,它们必须在javafx线程上运行。请尝试以下操作,因为您在start()
内写的内容正在Javafx Thread
上运行:
public class Welcome extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Media");
Scene scene = new Scene(new Group(), 540, 209,Color.BLUEVIOLET);
primaryStage.setScene(scene);
String bip = "bip.mp3";
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
//set player property to autoplay
mediaPlayer.setAutoPlay(true);
// Create the view and add it to the Scene.
MediaView mediaView = new MediaView(mediaPlayer);
((Group) scene.getRoot()).getChildren().add(mediaView);
primaryStage.show();
}
}