我想在我的java游戏中添加音频,但我不知道如何将其付诸实践。通过我的阅读,Java只播放wav文件,但这个文件太大了。 我已经阅读了一些关于JLayer的内容,但我实际上需要像android中的soundpool这样的东西来处理所有游戏效果。你知道怎么做吗?我是否建立了一个能够做到这一点的课程?
答案 0 :(得分:2)
以下是我使用JLayer一段时间在游戏中使用的一些代码:
public class MP3 {
public void play(final InputStream in) {
new Thread() {
@Override
public void run() {
try {
new Player(in).play();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}.start();
}
}
private HashMap<String, URL> soundMap = new HashMap<String, URL>();
public void loadSounds() {
String[] filenames = {
"5_seconds_remaining.mp3",
"10_seconds_remaining.mp3",
"button_press_loud.mp3"
};
for (String s : filenames) {
soundMap.put(s.substring(0, s.indexOf('.')), getClass().getResource("sounds/" + s));
}
}
public void playSound(String name) {
try {
new MP3().play(new BufferedInputStream(soundMap.get(name).openStream()));
} catch (IOException ex) {}
}
答案 1 :(得分:1)
我推荐TinySound。它支持ogg / vorbis文件(一种与mp3相当的免费压缩格式,但不像mp3那样需要许可)。
此处为此库的github源提供了一个链接。
也可以使用Java作为合成器(我一直在考虑这个),但我仍在努力制作一些“实用”的东西用于游戏。