java - 我怎样才能在java中处理声音?

标签 java audio

好吧,我有这个类来为我的游戏播放声音:

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() ,但显然它没有成功..

最佳答案

您没有在 AudioInputStream 上调用 close()

关于java - 我怎样才能在java中处理声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18037290/

相关文章:

java - Label 的 labelFor 字段未按预期运行

java - 试图记住疯狂的java数组技巧

java - 来自网络调用的房间数据库中的非重复条目

python - 当 python 文件与声音文件位于不同的目录时,如何播放声音?

c# - 以较小的文件大小将MP3转换为WAV

audio - Directshow筛选器如何交换媒体样本?

iphone - iOS SDK - iPhone 音频插孔如何与连接的电缆交互?

java - 使用带有证书路径(证书链)的 bouncycaSTLe 创建 x.509 证书

java - Java Swing 中创建两个标题(使用 TitledBorder)时 AddDocumentListener 的变量作用域

java - 关于 Java Sound API 的一些问题