import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class MediaPlayerTest extends Application {

    private Stage stage = null;
    private static final String[] MEDIA_URLS = {"file:///D:/Test/media/SampleAudio_0.4mb.mp3", "file:///D:/Test/media/SampleAudio_0.7mb.mp3", "file:///D:/Test/media/Tchaikovsky_Rococo_Var_orch.mp3"};
    private int index = 0;
    private MediaView mediaView = new MediaView();
    private MediaPlayer mediaPlayer = null;

    @Override
    public void start(Stage stage) {
        this.stage = stage;

        stage.setTitle("RT-18224");
        Group root = new Group();
        Scene scene = new Scene(root, 360, 243);

        root.getChildren().add(mediaView);
        stage.setScene(scene);
        stage.show();
        playVideo(MEDIA_URLS[index]);
    }

    private void playVideo(String url) {
        stage.setTitle("MediaPlayer Test - " + url);
        Media media = new Media(url);
        mediaPlayer = new MediaPlayer(media);
        mediaView.setMediaPlayer(mediaPlayer);

        mediaPlayer.setOnEndOfMedia(new Runnable() {

            @Override
            public void run() {                
                mediaPlayer.stop(); 
				mediaPlayer.dispose();			
                index++;
                if (index < MEDIA_URLS.length) {
                    playVideo(MEDIA_URLS[index]);
                } else {
                    stage.setTitle("MediaPlayer Test - done");
                    mediaView.setMediaPlayer(null);
                    mediaPlayer = null;                    
                }
            }
        });

        mediaPlayer.play();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}