0
にすべて、Media Playerではありません繰り返しを繰り返します。
boolean repeat=false, repeatall=false;
static List<MediaPlayer> players = new ArrayList<>();
if(!players.isEmpty()){
for (int i = 0; i < players.size(); i++) {
MediaPlayer currentPlayer=players.get(i);
//MediaPlayer nextPlayer=players.get((i+1) % players.size());
int j=i;
currentPlayer.setOnEndOfMedia(new Runnable() {
@Override
public void run() {
currentPlayer.stop();
if(repeat){
currentPlayer.stop();
mediaView.setMediaPlayer(currentPlayer);
currentPlayer.play();
}else if(repeatall){
MediaPlayer nextPlayer=players.get((j+1) % players.size());
mediaView.setMediaPlayer(nextPlayer);
nextPlayer.play();
}else if(!repeatall){
if(j<players.size()){
MediaPlayer nextPlayer=players.get((j+1)); //Error Here. When Players is playing last index
mediaView.setMediaPlayer(nextPlayer);
nextPlayer.play();
}
}
}
});
}
}
これは私のメディアプレーヤーのコードである、しかし、それはいくつかのエラーを表示します。
選手が最後のインデックス
Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at am.fx.main.node.audioPlayer.PlayMenus$12.run(PlayMenus.java:243) \\That Line
at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
at com.sun.javafx.application.PlatformImpl$$Lambda$48/1294163646.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
ある場合は、あなたがこのコードを修正するために私を助けてくださいすることができ、このライン
に
を示すエラーが発生しました。
完全な例外スタックトレースを表示します。 – MBec
例外が投稿されました これが表示されます。 –