OOP_1B3_Project/src/backend/GameSoundManager.java

51 lines
1.4 KiB
Java

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();
}
}