2

我有一个非常具体的问题。我现在正在创建一个游戏,并希望它播放一些音乐。现在,当我按 X 时,音乐就开始了。

if (keyCode == KeyEvent.VK_X) {
        PlaySound pl = new PlaySound(//Play testsound
                new File(
                        "C:\\Users\\Desktop\\Projekt MC\\Musik\\WAV\\dungeontest.wav"));
        pl.start();

当我再次按 X 时,我希望声音停止播放。我已经测试过创建一个布尔值来表示是否正在播放音乐。但这也失败了。

如果有人知道如何解决这个问题,我会很高兴。

4

1 回答 1

1

您的 PlaySound 变量 pl 是该代码块的本地变量,因此对程序的其余部分不可见。相反,您希望将此字段设置为类字段,该字段将在其他方法中可见。这样,pl.stop()如果您想停止声音,您可以在其他地方调用(或任何需要的方法)。

请注意,我不熟悉该PlaySound课程,因此无法对此提出具体建议。


顺便说一句,您的代码看起来像 Swing 代码,如果是这样,您将希望在作为 GUI 后台的线程上播放声音。否则,您可能会在播放声音时锁定 GUI。

于 2013-10-12T15:39:27.847 回答