声音不在 Eclipse 中播放

Sound not playing in Eclipse

这是 class SoundTest 的代码:


package code;


import java.io.File;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;


public class SoundTest {

    public static void main(String args[])
    {
        File sound = new File("main//Sounds//open1.wav");
        playSound(sound);
    }

    public static void playSound(File f)
    {
        try {

            File file = f;
            if(file.exists())
            {
                AudioInputStream audio = AudioSystem.getAudioInputStream(file);
                Clip clip = AudioSystem.getClip();
                clip.open(audio);
                clip.start();
                //clip.close();
            }
            else
            {
                System.out.println("Can't find file");
            }


        }
        catch(Exception e)
        {
            System.out.println("Didn't work!");
        }
    }
}

当我 运行 它时,没有错误或异常,而且它从不说 "Can't find file" 或 "Didn't work!"。但我听不到任何声音。我是否必须更改 Eclipse 中的某种设置才能发出声音,或者我做错了什么?我很确定声音文件位于正确的位置。

那不是eclipse的问题。 java 正在打开和播放文件,但即使在音频剪辑完成播放之前,程序也会终止 - 这意味着 java 程序不会等待剪辑完成播放

您的方法缺少一行代码来满足您的需求,请参见下文

Thread.sleep(clip.getMicrosecondLength() / 1000);

因此,添加此行后,您的代码应该如下所示,您将听到您的音乐

    AudioInputStream audio = AudioSystem.getAudioInputStream(file);
    Clip clip = AudioSystem.getClip();
    clip.open(audio);
    clip.start();
    Thread.sleep(clip.getMicrosecondLength() / 1000);