package fr.monkhanny.dorfromantik.utils; import fr.monkhanny.dorfromantik.enums.Musics; import fr.monkhanny.dorfromantik.Options; import javax.sound.sampled.Clip; import javax.sound.sampled.FloatControl; public class MusicPlayer { private static Clip musicClip; private static boolean isPlaying = false; public static void loadMusic(Musics music) { if (music == Musics.MAIN_MENU_MUSIC) { musicClip = MusicLoader.loadMusic(Musics.MAIN_MENU_MUSIC.getSoundsPath()); if (musicClip != null) { setVolume(Options.DEFAULT_VOLUME); } } } public static void play() { loadMusic(Musics.MAIN_MENU_MUSIC); if (musicClip != null && !isPlaying) { musicClip.start(); isPlaying = true; } } public static void pause() { if (musicClip != null && isPlaying) { musicClip.stop(); isPlaying = false; } } public static void stop() { if (musicClip != null) { musicClip.stop(); musicClip.setFramePosition(0); isPlaying = false; } } public static void setVolume(int volume) { if (musicClip != null) { FloatControl volumeControl = (FloatControl) musicClip.getControl(FloatControl.Type.MASTER_GAIN); float range = volumeControl.getMaximum() - volumeControl.getMinimum(); float gain = (range * volume / 100f) + volumeControl.getMinimum(); volumeControl.setValue(gain); } } public static boolean isPlaying() { return isPlaying; } }