我想创建一个游戏,然后完成主菜单和关卡选择菜单。在主菜单中,有一首从SharedClass
开始播放的歌曲。我的主菜单中也有一个按钮,可以开始播放视频。视频按计划开始,但是我无法停止音频,尽管我在共享类中创建了一个包含剪辑停止的方法,并且如果调用了该方法,则我用System.out.println
进行了测试。我真的不知道为什么音频不会停止。任何帮助表示赞赏。
public void stopAudio() {
clip.stop();
System.out.println("Test");
isPlaying = false;
}
SoundSharedInstance soundSharedInstance = SoundSharedInstance.getInstance();
soundSharedInstance.stopAudio();
My Main Menu Where the audio starts
SoundSharedInstance soundSharedInstance = SoundSharedInstance.getInstance();
if (!soundSharedInstance.isPlaying()) {
soundSharedInstance.createAudio(new File("sounds//opening1.wav"));
soundSharedInstance.startAudio();
System.out.println(soundSharedInstance.isPlaying());
}
答案 0 :(得分:0)
据我所知,您对Clip
的基本调用很好。我敢冒这个问题是由于静态SoundSharedInstance
类与实际实例的管理不当而引起的。我想花点时间来解决这个问题比我有更多的时间做,但是您可以做一些测试来帮助您验证这一理论。
您可以检查在stopAudio
方法中输出“测试”的位置。您确定所涉及的clip
与正在播放的是同一个人吗?
例如,它可以帮助输出hashID(在clip
的实例化,其开始和结束以及isPlaying
方法为stopAudio
的值的情况下即使它在您听到时仍告诉您“假”,也不会感到惊讶,这表明它涉及多个实例。