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

Java音频播放器报错LineUnavailableException:格式不支持求助

解决Java音频播放器的LineUnavailableException问题

你的错误根源是当前音频的ULAW 48000.0 Hz, 8 bit, mono格式不被Java Sound API的Clip组件支持——Clip通常仅兼容PCM编码的音频格式。可以通过将音频输入流转换为系统支持的PCM格式来解决,修改后的代码如下:

try {
    File snareFile = new File("Snare.WAV");
    AudioInputStream originalStream = AudioSystem.getAudioInputStream(snareFile.getAbsoluteFile());
    println(originalStream.getFormat()); 

    // 定义目标PCM格式:16位、44100Hz、单声道、有符号、小端
    AudioFormat targetFormat = new AudioFormat(
        AudioFormat.Encoding.PCM_SIGNED,
        44100.0f,
        16,
        1,
        2,
        44100.0f,
        false
    );

    // 转换音频流到目标格式
    AudioInputStream convertedStream = AudioSystem.getAudioInputStream(targetFormat, originalStream);
    
    clip = AudioSystem.getClip();
    clip.open(convertedStream);
} catch(UnsupportedAudioFileException e) {
    println("unsupported audio");
} catch(FileNotFoundException e) {
    println("try a new path");
} catch(IOException e) {
    println("IO issue");
} catch(Exception e) {
    println("Other issue: " + e);
}

额外提示

如果不想在代码中做格式转换,也可以用音频编辑工具(比如Audacity)直接把Snare.WAV转成PCM编码、44100Hz、16位单声道的WAV文件,替换原文件后用你原本的代码就能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:05:34