【发布时间】:2011-11-17 03:02:40
【问题描述】:
我只是尝试使用 javax.sound.sampled 库播放声音剪辑,使用我在文档中找到的最基本示例。我已经看到了几十个这样编码的示例,它们似乎都可以工作,文件只有 174KB,所以它不像我要播放整个音乐会:
public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
// TODO Auto-generated method stub
Clip clip;
AudioInputStream sound = AudioSystem.getAudioInputStream(new File("test.wav"));
AudioFormat format = sound.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
clip = (Clip)AudioSystem.getLine(info);
clip.open(sound);
clip.start();
}
...这会产生错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1131)
at test.main(test.java:21)
我真的不知道是什么原因造成的,我尝试增加 JVM 的内存限制,但根本没有帮助。我将不胜感激。
【问题讨论】:
-
您是否尝试过增加 JVM 堆大小?可能有帮助..viralpatel.net/blogs/2009/01/…
-
这可能是一个愚蠢的问题,但是您是否在其他声音播放器中测试过该剪辑以查看它是否实际播放(即它没有损坏)?
-
还输入
System.err.println(format);以查看实际格式。如果帧速率有点像 22Hz,你可以认为文件已损坏。
标签: java out-of-memory