我有List<MediaPlayer>
那个由
private List<MediaPlayer> players() {
for (String file : path.list((dir1, name) -> {
if (name.endsWith(SUPPORTED_VIDEO_FILE_EXTENSIONS)){
return true;
}
return false;
})) {
players.add(createPlayer(Paths.get(path + "/" + file).toUri().toString()));
System.out.println(Paths.get(path + "/" + file).toUri().toString());
}
return players;
}
在我的情况下,大小List<MediaPlayer>
是 3。比我在那里使用它
if (currentNumOfVideo == -1) {
currentNumOfVideo = 0;
}
mv = new MediaView();
MediaPlayer currentPlayer = players.get(currentNumOfVideo);
mv.setMediaPlayer(currentPlayer);
currentPlayer.play();
players.get(currentNumOfVideo).setOnEndOfMedia(() -> {
players.get(currentNumOfVideo).stop();
if (currentNumOfVideo < players.size()) {
currentNumOfVideo += 1;
mv.setMediaPlayer(players.get(currentNumOfVideo));
players.get(currentNumOfVideo).play();
} else {
currentNumOfVideo = 0;
mv.setMediaPlayer(players.get(currentNumOfVideo));
players.get(currentNumOfVideo).play();
}
});
第一个视频播放,当它结束时第二个视频开始。在第二个视频之后 MediaPlayer 停止并且没有播放第三个视频。
我知道因为我的setOnEndOfMedia
那只是在第一个 MediaPlayer 上。当第二个视频开始时它没有setOnEndOfMedia
. 我怎样才能setOnEndOfMedia
在我的List<MediaPlayer>
.