我想在我的 java 游戏中添加音频,但我不知道如何将它付诸实践。根据我的阅读,Java 只播放 wav 文件,但这些文件太大了。我已经阅读了一些关于 JLayer 的内容,但实际上我需要类似 android 中的 soundpool 之类的东西来处理游戏中的所有效果。你知道怎么做吗?我必须建立一个可以做到的类?
问问题
989 次
2 回答
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) {}
}
于 2013-04-18T16:15:22.737 回答
1
我推荐 TinySound。它支持 ogg/vorbis 文件(一种可与 mp3 相媲美的免费压缩格式,但不像 mp3 那样需要许可)。
那里提供了该库的 github 源的链接。
也可以将 Java 用作合成器(我一直在涉足这个),但我仍在努力制作一些“实用”的东西以在游戏中使用。
于 2013-04-19T17:53:09.450 回答