Search code examples
javaurljavafxmedia-player

JavaFX how to start playing song on startup


I wanna make a simple app that automatically plays a song from URL when started. I know how to play a song on button press using mediaPlayer, but i dont know how to play it automatically ?

This is my method for initPlayer that i use inside of a playButtonFired method in my Controller class:

public void startup(){
    String URL="http://download.oracle.com/otndocs/javafx/JavaRap_Audio.mp4";
    initPlayer(URL);
}


private  void initPlayer(String uri)
{

    if(uri==null)
    {
        return;

    }
    Media media = new Media(uri);
    mediaPlayer = new MediaPlayer(media);
    mediaPlayer.setOnReady(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            enableControls();
        }
    });

And this is my main class:

public class MainGui extends Application  {

@Override
public void start(Stage primaryStage) {

    Parent root = null;

    try {
        root = FXMLLoader.load(getClass().getResource("MediaPlayer.fxml"));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }




    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.show();


}

public static void main(String[] args) {
    launch(args);


}

Solution

  • Add your code which starts to play the song inside the public void start(Stage primaryStage) function of JavaFX. (mediaPlayer.play() starts playing a song)

    EDIT:

    Your updated code is missing the static from public static void startup(). Yours reads: public void startup(). Add it and call it from your main class with Controller.startup();, preferably below primaryStage.show();