查找播放声音的文件

无用户名

我正在尝试制作一个应用程序,当我单击JButton时,它会播放一首歌曲。我已经弄清楚了如何指定JButton。但是,我似乎找不到一种播放声音的方法。我不会使用sun.audio,所以我看过的许多线程都没有用。我发现许多低质量的答案。最终,我决定使用此代码。

public static synchronized void playSound(final String url) {
  new Thread(new Runnable() {
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();
}

在src文件夹中,我有一个名为“歌曲”的文件夹。我将文件路径更改为:/ Songs /

然后,我尝试使用wav文件调用该函数:

playSound("song.wav");

然后我得到一个空错误。我相信这是因为它无法识别文件路径。我的问题的答案很可能很明显,但是我却找不到。

桑布里克斯

将song.wav放在Main类的同一文件夹中,然后getResourceAsStream会找到它。

如果您使用的是eclipse,它将自动将.wav文件复制到输出文件夹。

您可能想在一些不同的Java包上创建一个类,以便您的入口点不会被资产污染。

这种阅读可能对您有帮助:http : //www.thinkplexx.com/learn/howto/java/system/java-resource-loading-explained-absolute-and-relative-names-difference-between-classloader-and-class-资源加载

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章