为我的基本'Sound Adventure'游戏添加声音

时间:2013-12-25 07:41:11

标签: java eclipse audio javafx

如何为我的基本'Sound Adventure'游戏添加声音?

我是初学者,我想做一个基本的声音冒险游戏。 (是的,你听到了,Sound Adventure。)

我知道Java的基础知识,我可以编写文本冒险代码,但我还不知道Sound在Java中是如何工作的。我已经看过互联网上的教程,但似乎没有用。 我准备改变声音的格式了。 (目前是.mp3) 此外,我正在使用JDK 7与Eclipse Kepler。 (如果有帮助的话。)

到目前为止,这是我的代码:

package everything;

import java.util.Scanner;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

public class Main {

public static void main(String[] args) {
    // Declarations
    System.out.println("Please Enter Your Name To Start...");
    Scanner temp = new Scanner(System.in);
    String name = temp.nextLine();
    System.out.println("Okay " + name + ", Let's Get Started!");
    System.out.println("Press N To Start The Game...");
    while(!"N".equals(temp.nextLine())){
        System.out.println("I Asked For The Letter N, Was It So Hard? Try Again!");
    }
}
}

1 个答案:

答案 0 :(得分:0)

通过简单的Google搜索,您可以获得大量资源。

使用JavaFX Framework

只需使用AudioClip的实例即可。这个非常适合播放单个短音。

AudioClip plonkSound = new AudioClip("http://somehost/path/plonk.aiff");
plonkSound.play();

使用标准Java API

标准Java API有点痛苦,我没有任何经验,但这段代码在此related question上有60多个Upvotes。

public static synchronized void playSound(final String url) {
  new Thread(new Runnable() {
  // The wrapper thread is unnecessary, unless it blocks on the
  // Clip finishing; see comments.
    public void run() {
      try {
        Clip clip = AudioSystem.getClip();
        AudioInputStream inputStream = AudioSystem.getAudioInputStream(
          Main.class.getResourceAsStream("/path/to/sounds/" + url));
        clip.open(inputStream);
        clip.start(); 
      } catch (Exception e) {
        System.err.println(e.getMessage());
      }
    }
  }).start();
}