【问题标题】:What is the easiest way to load and play sounds in a java application?在 Java 应用程序中加载和播放声音的最简单方法是什么?
【发布时间】:2014-09-05 09:21:27
【问题描述】:

我对java比较陌生(我参加了1个学期的在线课程,所以我知道语言的基本结构,但我的知识有很多空白)。我正在尝试为我正在学习的微音音乐课程编写一个简单的听力训练应用程序,我显然需要能够使用此应用程序播放声音。在网上看,我发现的很多信息都已经过时了,而且我在弄清楚 Clip、Dataline 等的 API 时遇到了麻烦(再说一遍,我是新手!)有没有简单的方法来将声音加载到某种对象上(可能像 AudioClip?),以便在必要时播放它们?如果它比这更复杂,我会很感激被引导到可以帮助我弄清楚这个过程是如何工作的资源。

【问题讨论】:

    标签: java audio


    【解决方案1】:

    您可以使用此方法通过 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 如何添加音频剪辑的教程。你也可以查看Tutorial in playing sounds in Java

    【讨论】:

    • 感谢您的帮助!我不太确定如何使用代码:(。我会尽量具体说明我的困惑是什么:
    • @AlfredBrewer 我收到了您的问题,您想使用 Java 应用程序播放音频。如果这是问题,那就是答案:) 别担心。如有任何问题,请发表评论或提出其他问题。
    • 首先,当我尝试编译你给我的代码时,我得到这个错误:错误:/Users/Alfred/Sounds.java:15:找不到符号符号:类 Main。其次,“/path/to/sounds/”是对应该是什么网址的评论,还是我需要添加的内容的占位符?我不确定我是否提出了正确的问题,但感谢您的帮助!
    • 好吧,没关系。我将代码中的“main”更改为我的类的名称并编译了:)
    • 现在代码已经编译完成,我尝试使用我要播放的文件名作为此方法中的字符串参数来播放声音,但我得到了一个“null”作为输出。 java会自动在我的计算机上找到文件还是我需要以某种方式加载它?
    【解决方案2】:

    您需要导入以下内容:

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

    例如,如果您的音频剪辑的文件名是 music.wav,那么您的文件路径可能是:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多