Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开同一个wav文件给我一个javax.sound.sampled.LineUnavailableException_Java_Javasound_Clip - Fatal编程技术网

打开同一个wav文件给我一个javax.sound.sampled.LineUnavailableException

打开同一个wav文件给我一个javax.sound.sampled.LineUnavailableException,java,javasound,clip,Java,Javasound,Clip,我有两个类似的wave(类似的格式),我用这段代码预加载了它们 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 = (

我有两个类似的wave(类似的格式),我用这段代码预加载了它们

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,但我遇到了相同的错误

我有Ubuntu11.04,这是java版本的结果

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=接口剪辑支持格式PCM\u签名11025.0 Hz,16位,单声道,2字节/帧,小端


click2=接口剪辑支持格式PCM\u签名11025.0 Hz,16位,单声道,2字节/帧,little-endian两种故障排除方法:

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

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


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

谢谢,但我尝试使用新变量,我也遇到了同样的问题。您是否对AudioInputStream“声音”、“信息”变量和“声音文件”使用完全不同的变量?如果它不起作用的话,看看你是如何实现它的将会很有帮助。我已经升级到Java 7,我解决了这个问题。然而,我对“声音”、“信息”和“声音文件”使用了不同的变量。