我有一个任务,我正在建立一个游戏,需要背景音乐循环。我正在使用java.Applet.AudioClip
,根据Oracle有三个内置函数。 play()
,loop()
和stop()
。出于某种原因,我的停止有时只能起作用有一个名为sound的菜单项可以关闭和打开游戏的声音,还有一个暂停按钮。暂停按钮成功停止音乐,并再次播放。但是如果我取消选中声音选项,除了背景音乐之外所有的声音都会停止(我已经调试了,它会进入if语句来停止背景音乐,但由于某种原因它不能阻止它)。如果我暂停游戏,取消选中声音选项,然后取消暂停背景音乐的游戏。取消选中声音(和声音不停止),暂停游戏,然后取消暂停音乐(即使它不应该)。因此,基本上取消选中声音选项适用于除背景音乐之外的所有声音,并且它适用于背景音乐,但仅在暂停时关闭。感谢您的时间,我希望很快能收到您的回复。
(因为这是一个班级作业,我不想在共享我的代码时遇到麻烦,所以其他同学可以找到它,所以我会尝试不分享我的整个课程,只发布相关的剪辑,如果你需要更多只是让我知道)
`ItemListener listener = new ItemListener()
{
public void itemStateChanged(ItemEvent event) {
int state = event.getStateChange();
if (state == ItemEvent.SELECTED) {
gw.setSound(true);
if (!gameMode) {
backgroundSound.loop(gw);
}
gw.notifyObserver();
}
else
{
gw.setSound(false);
backgroundSound.stop(gw);
gw.notifyObserver();
}
}
};`
`if (e.getSource() == pauseBtn) {
if (pauseBtn.getText().equals("Pause")) {
timer.stop();
backgroundSound.stop(gw);
pauseBtn.setText("Play");
} else if (pauseBtn.getText().equals("Play")) {
timer.start();
if (gw.getSound())
{
backgroundSound.loop(gw);
}
pauseBtn.setText("Pause");
}`