From d0540a31926dcfaadb247f5004fc16f65f2c672e Mon Sep 17 00:00:00 2001 From: "Raybz@Raybz" Date: Fri, 5 Jul 2013 09:18:03 +0200 Subject: [PATCH] fixed bug with files which contains no audio/video data --- .../wyrez/shootingstars/states/LoadingState.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ShootingStars/src/org/wyrez/shootingstars/states/LoadingState.java b/ShootingStars/src/org/wyrez/shootingstars/states/LoadingState.java index 499d644..d88d121 100644 --- a/ShootingStars/src/org/wyrez/shootingstars/states/LoadingState.java +++ b/ShootingStars/src/org/wyrez/shootingstars/states/LoadingState.java @@ -43,6 +43,7 @@ public class LoadingState extends AbstractAppState { private LoadingProgress currentProgress; private GameSettings settings; private BackgroundMusic music; + private boolean hasTriedConverting; public LoadingState(Screen screen, StateManager stateManager, AudioDataManager audioDataManager, GameSettings settings, @@ -71,6 +72,7 @@ public class LoadingState extends AbstractAppState { try { switch (currentProgress) { case START: + hasTriedConverting = false; currentProgress = LoadingProgress.LOADING_CINEMA; break; case LOADING_CINEMA: @@ -85,11 +87,16 @@ public class LoadingState extends AbstractAppState { if (initAudioAnalysis()) { currentProgress = LoadingProgress.ANALYSE_LOW_BAND; } else { - currentProgress = LoadingProgress.CONVERT_AUDIO; + if (hasTriedConverting) { + backToMenu(); + } else { + currentProgress = LoadingProgress.CONVERT_AUDIO; + } } break; case CONVERT_AUDIO: convertAudio(); + hasTriedConverting = true; currentProgress = LoadingProgress.INIT_AUDIO_ANALYSIS; break; case ANALYSE_LOW_BAND: @@ -118,11 +125,15 @@ public class LoadingState extends AbstractAppState { } } catch (Exception ex) { ex.printStackTrace(); - stateManager.setState(State.MENU); + backToMenu(); } gui.updateProgress(currentProgress); } + private void backToMenu() { + stateManager.setState(State.MENU); + } + private boolean initAudioAnalysis() { GameState gs = stateManager.getState(State.GAME); return audioDataManager.initialize(settings, gs.getMediaPlayer());