java - 在Java中播放音频文件

标签 java audio wav java-io javax.sound.sampled

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

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

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

screen-shot

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

最佳答案

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

 clip.start();

开始播放然后返回。现在你的 main 方法结束了,因此 Java 进程也结束了。没有声音。

如果你这样做

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

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

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

关于java - 在Java中播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34534732/

相关文章:

java - 如何在android中比较两次

java - 我可以在 Azure Application Insights 中获得 Java Web 应用程序的探查器跟踪吗?

c - 如何在 C 中获取 WAV 文件的持续时间?

ffmpeg - 强制 ffmpeg 输出 WAV_FORMAT_PCM

java - 使用 zxing lib 从 QR 码获取原始字节(或从 BitMatrix 转换)

java - 将图形框架添加到JDialog Form中

html - HTML5 Web音频API-临时录制声音

wpf - 如何在wpf的 Storyboard 中添加声音?

javascript - 我的声音无法在资源管理器或Firefox中使用

c++ - 快速调用 fread 会使应用程序崩溃