package backend; import javax.sound.sampled.*; import java.io.File; import java.io.IOException; public class GameSoundManager { private Clip backgroundClip; private Clip jblClip; public GameSoundManager(String backgroundPath, String jblPath) { try { backgroundClip = AudioSystem.getClip(); jblClip = AudioSystem.getClip(); AudioInputStream bgStream = AudioSystem.getAudioInputStream(new File(backgroundPath)); AudioInputStream jblStream = AudioSystem.getAudioInputStream(new File(jblPath)); backgroundClip.open(bgStream); jblClip.open(jblStream); } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) { e.printStackTrace(); } } public void onStartButtonClicked() { playJblSound(); playBackgroundLoop(); } private void playJblSound() { if (jblClip.isRunning()) jblClip.stop(); jblClip.setFramePosition(0); jblClip.start(); } private void playBackgroundLoop() { if (backgroundClip.isRunning()) backgroundClip.stop(); backgroundClip.setFramePosition(0); backgroundClip.loop(Clip.LOOP_CONTINUOUSLY); } public void stopAllSounds() { if (jblClip != null) jblClip.stop(); if (backgroundClip != null) backgroundClip.stop(); } }