【问题标题】:Error while playing sound in Java在 Java 中播放声音时出错
【发布时间】:2014-02-19 17:22:11
【问题描述】:

我正在尝试在我的 Java 应用程序中播放声音,但每次调用该方法时都会收到此异常:javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 48000.0 Hz, 24 bit, mono, 3 bytes/frame, little-endian not supported.

代码如下:

    AudioInputStream audio = AudioSystem.getAudioInputStream(new File("src/media/ding2.wav"));
    Clip clip = AudioSystem.getClip();  
    clip.open(audio);
    clip.start();

我尝试通过传递 URL 来播放文件,它工作正常,但我的“ding2.wav”没有任何效果。

提前感谢您的帮助。

【问题讨论】:

  • 这里的错误信息很清楚。

标签: java audio wav playback


【解决方案1】:

通过查看 Documention 中的 HERE,当行不可用或请求的资源正在被另一个应用程序使用时,会出现 LineUnavailableException,

确保您的音频文件未在任何其他应用程序中打开。

编辑

正如错误消息所说:格式为 PCM_SIGNED 48000.0 Hz、24 位、单声道、3 字节/帧的行 不支持您提供的文件格式。 正如你所说我尝试通过传递一个 URL 来播放一个文件,它工作正常, 放回旧文件并使用检查文件格式

System.out.println(audio.getFormat());

并检查该文件的文件格式是什么,是否与上述格式 PCM_SIGNED 48000.0 Hz、24 位、单声道、3 _ 的_line 相同,

【讨论】:

  • 刚试过,它说PCM_UNSIGNED 11025.0 Hz, 8 bit, stereo, 2 bytes/frame。我想我必须转换我的“ding2.wav”文件,谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2010-09-06
  • 2013-12-10
相关资源
最近更新 更多