好的,所以我有这堂课为我的游戏播放声音:
package sound;
import java.net.URL;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class GameSounds
{
private static int count = 0;
public static void play(String path)
{
try
{
URL audioInStream = GameSounds.class.getResource(path);
AudioInputStream inputStream = AudioSystem.getAudioInputStream(audioInStream);
Clip clip = AudioSystem.getClip();
clip.open(inputStream);
clip.start();
if(count > 60)
{
clip.stop();
count = 0;
}
count++;
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我有10个级别..并且在第8级或第9级它给出了一个“内存不足”的错误,它告诉我错误来自这个类,我相信它在使用它们之后没有消除声音...所以我的问题是我该怎么做?我尝试使用try catch和final以及clip.dispose(),但显然它没有用完..
答案 0 :(得分:1)
您未在close()
上致电AudioInputStream
。