提问者:小点点

在java应用程序中加载和播放声音的最简单方法是什么?


我对java比较陌生(我参加了一个为期一个学期的在线课程,所以我知道该语言的基本结构,但我的知识有很多差距)。我正在为我正在学习的微音音乐课程编写一个简单的耳朵训练应用程序,我显然需要能够用这个应用程序播放声音。在网上看,我发现的很多信息都已经过时了,而且我很难找到剪辑、数据线等的API(同样,我是新来的!)有没有一种简单的方法可以将声音加载到某种对象上(比如AudioClip?)这样就可以在必要时回放?如果它比这更复杂,我会很感激被引导到可以帮助我理解这个过程是如何工作的资源。


共2个答案

匿名用户

您可以使用此方法通过java应用程序播放音频剪辑

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();
}

这是另一个关于java如何添加音频剪辑的教程。你也可以在Java中查看播放声音的教程

匿名用户

您需要导入以下内容:

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.io.FileNotFoundException;

我创建了一个播放音频剪辑的方法,如下所示:

public static void myMusic() throws FileNotFoundException {
    try {
        File wavFile = new File(/*file path*/);
        Clip clip = AudioSystem.getClip();
        clip.open(AudioSystem.getAudioInputStream(wavFile));
        clip.start();
    } catch (Exception e) {
        System.out.println(e);
    }
}

比方说,如果您的音频剪辑的文件名是音乐。wav,您的文件路径可能是:

File wavFile = new File("music.wav");

最后,要播放音频剪辑,您需要调用该方法。