51 lines
1.4 KiB
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();
|
|
|
|
}
|
|
} |