0

わかりましたので、ゲームのサウンドを再生するためにこのクラスがあります:

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()で何かを試しましたが、明らかにうまくいきませんでした..

4

1 に答える 1

1

close()に電話していませんAudioInputStream

于 2013-08-03T21:16:08.520 に答える