播放 Java 中的音频文件

Play audio files in Java

我正在尝试播放一个简单的音频文件,该文件位于 class 文件附近的同一目录中。我尝试了很多来自互联网的例子,但其他的都给我错误,我什至无法理解。

然后我找到了这个,我现在正在使用它。

There are neither compile errors nor runtime errors. But the problem is I cannot hear any noise.

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

class A{
    public static void main (String[]args){
        try {
                AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("abc.wav").getAbsoluteFile());
                Clip clip = AudioSystem.getClip();
                clip.open(audioInputStream);
                clip.start();
            } catch(Exception ex) {
                System.out.println("Error with playing sound.");
            }
    }
}

请注意我的系统音量是80%,音频文件在VLC媒体播放器中播放。

启动音频剪辑不会阻塞 main 方法。所以

 clip.start();

开始播放,然后 returns。现在您的主要方法结束,因此 Java 过程结束。没有声音。

如果你这样做

 clip.start();
 Thread.sleep(20000);

您应该会听到剪辑播放 20 秒。

所以对于一个工作程序来说,只要你想播放剪辑,就必须确保主线程不会结束。

稍等一下,直到音频片段播放。

long audioPlayTime = 1000; //clip duration in miliseconds.
try {
           Thread.sleep(audioPlayTime);
} catch (InterruptedException ex){
            //TODO
}