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
相关产品推荐
相关产品推荐

