如何在Java游戏中实现音频?

时间:2013-04-18 15:32:12

标签: java audio javasound

我想在我的java游戏中添加音频,但我不知道如何将其付诸实践。通过我的阅读,Java只播放wav文件,但这个文件太大了。 我已经阅读了一些关于JLayer的内容,但我实际上需要像android中的soundpool这样的东西来处理所有游戏效果。你知道怎么做吗?我是否建立了一个能够做到这一点的课程?

2 个答案:

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

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

此处为此库的github源提供了一个链接。

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