parent
1f2a49e92d
commit
9f07a12925
@ -0,0 +1,44 @@
|
||||
package com.snakegame;
|
||||
|
||||
import javax.sound.sampled.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class SoundManager {
|
||||
private Clip backgroundMusicClip;
|
||||
private boolean musicEnabled = true; // 控制音乐是否启用
|
||||
|
||||
public SoundManager() {
|
||||
// 初始化时不自动播放音乐
|
||||
}
|
||||
|
||||
public void playBackgroundMusic(String filePath) {
|
||||
if (!musicEnabled) return; // 如果音乐被禁用,则不播放
|
||||
|
||||
stopBackgroundMusic(); // 停止当前播放的音乐
|
||||
try {
|
||||
File backgroundMusicFile = new File(filePath);
|
||||
AudioInputStream backgroundMusicStream = AudioSystem.getAudioInputStream(backgroundMusicFile);
|
||||
backgroundMusicClip = AudioSystem.getClip();
|
||||
backgroundMusicClip.open(backgroundMusicStream);
|
||||
backgroundMusicClip.loop(Clip.LOOP_CONTINUOUSLY);
|
||||
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void stopBackgroundMusic() {
|
||||
if (backgroundMusicClip != null && backgroundMusicClip.isRunning()) {
|
||||
backgroundMusicClip.stop();
|
||||
}
|
||||
}
|
||||
|
||||
public void toggleMusic() {
|
||||
musicEnabled = !musicEnabled;
|
||||
if (musicEnabled && backgroundMusicClip != null) {
|
||||
playBackgroundMusic("resources/background1.wav"); // 重新播放音乐
|
||||
} else {
|
||||
stopBackgroundMusic();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue