【发布时间】:2014-12-25 16:48:04
【问题描述】:
有什么方法可以播放相同的音频文件(使用 sun.audio)而不必每次都加载 Fileinputstream?这就是我现在正在尝试的方式:
public static void nomnom() throws Exception
{
FileInputStream in = new FileInputStream ("nomnom.au");
AudioStream as = new AudioStream (in);
AudioPlayer.player.start (as);
ContinuousAudioDataStream loop = null;
}
尽管“nomnom.au”只有几秒钟,但当我重复此方法(播放声音)大约 30 次时,我很快就会收到 OutofMemoryError。我认为这是由于我每次需要播放音频文件时都在加载它。
我尝试在我的课程一开始就声明 FileInputStream 和 AudioStream,只在 main 方法的开头加载一次我的文件:
public class Snake
{
static InputStream in;
static AudioStream as;
.
.
.
public static void nomnomload () throws Exception
{
in = new FileInputStream ("nomnom.au");
as = new AudioStream (in)
}
public static void nomnomplay() throws Exception
{
AudioPlayer.player.start (as);
ContinuousAudioDataStream loop = null;
}
}
我希望只在游戏开始时调用 nomnomload 方法。但是,当我尝试播放音频时,我只是第一次听到声音,而我接下来尝试运行 nomnomplay 时却没有任何声音。
我们将不胜感激任何解决此问题的帮助。
【问题讨论】: