我使用以下代码在我的游戏中播放声音。
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.IOException;
public class AudioController {
public static void playback(String fileName)
throws LineUnavailableException, UnsupportedAudioFileException, IOException {
AudioInputStream ais = AudioSystem.getAudioInputStream(AudioController.class.getClassLoader().getResourceAsStream("sounds/"+fileName));
AudioFormat format = ais.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(ais);
clip.start();
}
}
问题是:如果第一次播放声音,应用程序会挂起一小段时间,因为会完成某种初始化工作。之后播放的每个声音都不会显示此行为。如何防止这种情况?