You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用Clip播放wav音频无声音及音频播放方案咨询

代码无法播放的核心原因
  • 缺失必要依赖导入:你代码中用到的AudioInputStream、AudioSystem、Clip、UnsupportedAudioFileException、LineUnavailableException均属于javax.sound.sampled包,代码未导入这些类,首先无法通过编译。
  • 主线程提前终止:Clip的播放逻辑运行在后台守护线程中,main方法执行完clip.loop、clip.start后就直接结束,JVM会随之关闭所有后台线程,音频还没来得及播放进程就退出了,因此没有声音输出。
  • 其他可排查点:检查音频文件路径是否和实际路径完全匹配(注意路径中的空格、大小写),确认你的wav文件为未压缩的PCM格式,Java原生API不支持压缩编码的wav文件。
修复后的可运行代码
import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;

class Learning {
    public static void main(String[] args)
            throws SecurityException, IllegalStateException,
                   UnsupportedAudioFileException,
                   IOException, LineUnavailableException {
        AudioInputStream audioInputStream =
                AudioSystem.getAudioInputStream(
                    new File("D:\\jaVA items\\BabyElephantWalk60.wav"));
        Clip clip = AudioSystem.getClip();
        clip.open(audioInputStream);
        // LOOP_CONTINUOUSLY已经包含播放逻辑,可不额外调用clip.start()
        clip.loop(Clip.LOOP_CONTINUOUSLY);
        // 阻塞主线程,输入回车后停止播放退出
        System.out.println("输入回车停止播放");
        new Scanner(System.in).nextLine();
        clip.stop();
        clip.close();
    }
}
Java音频播放的其他可选方案
  • 使用JavaFX MediaPlayer:JavaFX内置的多媒体API支持wav、mp3、aac等常见音频格式,封装了循环、进度控制、音量调节等成熟API,适合带GUI的多媒体应用开发。
  • 引入第三方播放库:比如JLayer(支持MP3格式播放)、Tritonus(扩展javax.sound.sampled的格式支持范围),可解决原生API支持格式少的问题。
  • 调用系统播放器:对于不需要精细控制播放逻辑的场景,可以用ProcessBuilder直接调用系统默认的音频播放器打开文件,无需处理编码适配问题。

内容的提问来源于stack exchange,提问作者Darshit Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:06:00