2015-06-04 33 views
0

我用下面的代码来播放歌曲,但是它长达11分钟,所以我怎么能阻止它?如何阻止我的声音/音乐在另一个框架中播放?

此代码位于jFrame 1.如何使它停在jFrame 2中?

     InputStream test =getClass().getClassLoader().getResourceAsStream("musics/menu.wav"); 
         AudioStream Audio = new AudioStream(test);       
         AudioPlayer.player.start(Audio); 

我试图chaning AudioPlayer.player.start(Audio);AudioPlayer.player.**stop**(Audio);,但没有成功。

+0

停止'AudioPlayer'你面前切换JFrame的。 – Adam

+0

@WhyCry我不能,因为我有大约4个Jframes在菜单中。我只是想在游戏中停止它。 – Jack

回答

1

正常的java命名约定表示变量通常以小写字母开头,所以AudioAudioStream Audio = new AudioStream(test);可能会被错误地解释为类,而不是本地变量。

我认为this链接可以帮助您使用stop方法,如果这是代码不工作。

如果你没有停止方法和变量名称的问题,那么我建议你使用一个单独的类来保存你的AudioStream对象并使它们成为静态的,以便同一个包中的任何类都可以访问它。

你的类将是这个样子:

public class AudioHelper { 
    static InputStream test = getClass().getClassLoader().getResourceAsStream("musics/menu.wav"); 
    static AudioStream audio = new AudioStream(test);       

    public static void play() { 
     AudioPlayer.player.start(audio); 
    } 

    public static void stop() { 
     AudioPlayer.player.stop(audio); 
    } 
} 

,您可以访问它的方法就是这样,不管是什么的JFrame你在:

AudioHelper.play(); 
AudioHelper.stop(); 
相关问题