在Java程序

时间:2015-11-15 18:35:51

标签: java audio

我有一个任务,我正在建立一个游戏,需要背景音乐循环。我正在使用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");
}`

0 个答案:

没有答案