0

我想在我的 java 游戏中添加音频,但我不知道如何将它付诸实践。根据我的阅读,Java 只播放 wav 文件,但这些文件太大了。我已经阅读了一些关于 JLayer 的内容,但实际上我需要类似 android 中的 soundpool 之类的东西来处理游戏中的所有效果。你知道怎么做吗?我必须建立一个可以做到的类?

4

2 回答 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 那样需要许可)。

http://www.java-gaming.org/topics/need-a-really-simple-library-for-playing-sounds-and-music-try-tinysound/25974/view.html

那里提供了该库的 github 源的链接。

也可以将 Java 用作合成器(我一直在涉足这个),但我仍在努力制作一些“实用”的东西以在游戏中使用。

于 2013-04-19T17:53:09.450 回答