JavaFXで複数の動画を切り替えて再生するには、MediaPlayer.setOnEndOfMediaが動画の最後にいると認識できるので、複数の動画を切り替えて再生できます。
MediaPlayer.setAutoPlay(true)をしてしまうと、フォアグラウンドで再生すると他にバックグラウンドでも別の動画を再生しているのか、バックグラウンドの動画の音声も再生します。
private MediaPlayer createPlayer(String aMediaSrc) {
final MediaPlayer player = new MediaPlayer(new Media(aMediaSrc));
// player.setAutoPlay(true);
// player.setCycleCount( MediaPlayer.INDEFINITE ); // 繰り返し再生
player.setOnError(new Runnable() {
public void run() {
System.out.println("Media error occurred: " + player.getError());
}
});
return player;
}
public MediaView createMediaView(List<MediaPlayer> players){
final MediaView mediaView = new MediaView();
// play each audio file in turn.
for (int i = 0; i < players.size(); i++) {
final MediaPlayer player = players.get(i);
final MediaPlayer nextPlayer = players.get((i + 1) % players.size());
player.setOnEndOfMedia(new Runnable() {
public void run() {
mediaView.getMediaPlayer().stop();
mediaView.setMediaPlayer(nextPlayer);
nextPlayer.play();
}
});
}
mediaView.setMediaPlayer(players.get(0));
mediaView.getMediaPlayer().play();
return mediaView;
}