fixed bug with files which contains no audio/video data

This commit is contained in:
Raybz@Raybz 2013-07-05 09:18:03 +02:00
parent b420d72d72
commit d0540a3192

View File

@ -43,6 +43,7 @@ public class LoadingState extends AbstractAppState {
private LoadingProgress currentProgress; private LoadingProgress currentProgress;
private GameSettings settings; private GameSettings settings;
private BackgroundMusic music; private BackgroundMusic music;
private boolean hasTriedConverting;
public LoadingState(Screen screen, StateManager stateManager, public LoadingState(Screen screen, StateManager stateManager,
AudioDataManager audioDataManager, GameSettings settings, AudioDataManager audioDataManager, GameSettings settings,
@ -71,6 +72,7 @@ public class LoadingState extends AbstractAppState {
try { try {
switch (currentProgress) { switch (currentProgress) {
case START: case START:
hasTriedConverting = false;
currentProgress = LoadingProgress.LOADING_CINEMA; currentProgress = LoadingProgress.LOADING_CINEMA;
break; break;
case LOADING_CINEMA: case LOADING_CINEMA:
@ -85,11 +87,16 @@ public class LoadingState extends AbstractAppState {
if (initAudioAnalysis()) { if (initAudioAnalysis()) {
currentProgress = LoadingProgress.ANALYSE_LOW_BAND; currentProgress = LoadingProgress.ANALYSE_LOW_BAND;
} else { } else {
currentProgress = LoadingProgress.CONVERT_AUDIO; if (hasTriedConverting) {
backToMenu();
} else {
currentProgress = LoadingProgress.CONVERT_AUDIO;
}
} }
break; break;
case CONVERT_AUDIO: case CONVERT_AUDIO:
convertAudio(); convertAudio();
hasTriedConverting = true;
currentProgress = LoadingProgress.INIT_AUDIO_ANALYSIS; currentProgress = LoadingProgress.INIT_AUDIO_ANALYSIS;
break; break;
case ANALYSE_LOW_BAND: case ANALYSE_LOW_BAND:
@ -118,11 +125,15 @@ public class LoadingState extends AbstractAppState {
} }
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
stateManager.setState(State.MENU); backToMenu();
} }
gui.updateProgress(currentProgress); gui.updateProgress(currentProgress);
} }
private void backToMenu() {
stateManager.setState(State.MENU);
}
private boolean initAudioAnalysis() { private boolean initAudioAnalysis() {
GameState gs = stateManager.getState(State.GAME); GameState gs = stateManager.getState(State.GAME);
return audioDataManager.initialize(settings, gs.getMediaPlayer()); return audioDataManager.initialize(settings, gs.getMediaPlayer());