JavaFX java.lang.IllegalArgumentException(Css2Bin.java:44)

时间:2014-02-25 09:05:45

标签: javafx

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来说似乎很难....

1 个答案:

答案 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();
    }
}