java - 打开相同的 wav 文件给我一个 javax.sound.sampled.LineUnavailableException

标签 java javasound clip

我有两个相似的波形(相似的格式),我用这段代码预加载它们

Clip click1;
Clip click2;

File soundFile = new File("click1.wav");
AudioInputStream sound = AudioSystem.getAudioInputStream(soundFile);
DataLine.Info info = new DataLine.Info(Clip.class, sound.getFormat());
click1 = (Clip) AudioSystem.getLine(info);
click1.open(sound);

soundFile = new File("click2.wav");
sound = AudioSystem.getAudioInputStream(soundFile);
info = new DataLine.Info(Clip.class, sound.getFormat());
click2 = (Clip) AudioSystem.getLine(info);
click2.open(sound);

第一个文件已加载,但第二个文件抛出异常:

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.
    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:492)
    at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(DirectAudioDevice.java:1278)
    at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:107)
    at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1059)
    at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1149)

我尝试在 click2 的剪辑上设置 click1.wav,但遇到了同样的错误。

我有 Ubuntu 11.04,这是 java -version 的结果

java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) Client VM (build 20.14-b01, mixed mode

编辑

这是DataLine.Info的System.out.println的结果

click1 = 接口(interface)剪辑支持格式 PCM_SIGNED 11025.0 Hz、16 位、单声道、2 字节/帧、little-endian

click2 = 接口(interface)剪辑支持格式 PCM_SIGNED 11025.0 Hz、16 位、单声道、2 字节/帧、小端

最佳答案

两个故障排除思路:

1) 切换文件。错误是否切换到第一个负载?如果不是,那么问题可能是由下一个建议引起的。

2)不要尝试重复使用“信息”或“声音”,创建新变量。

错误发生在哪一行?我认为 Java 不允许您重用声音变量。我不清楚原因。我只记得当我尝试重用变量时,我必须先回到“soundFile”变量,然后 Java 才会允许我这样做。

关于java - 打开相同的 wav 文件给我一个 javax.sound.sampled.LineUnavailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15664722/

相关文章:

java - Spring Boot Banner.gif 不是动画的

java - eclipse 在哪里保存类路径变量值?

java - 寻找一种控制音量和声相的方法

java - 如何使用 Java 写入麦克风输入?

css - 如何从根据动态父 div 缩放的路径构建反向 svg 掩码

Java 反序列化向后兼容性

java - 在 Java 6u13+ 中从 Java WebStart (JNLP) 启动浏览器窗口

java - mp3 到 java 中的 wav 转换

Cocoa 绘制带有圆角和阴影的图像

python - 使用 matplotlib 中的多个补丁裁剪图像