不支持Java声音格式

不支持Java声音格式,java,audio,recording,Java,Audio,Recording,使用以下代码时: 我收到这个错误: javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported. at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source) at

使用以下代码时:

我收到这个错误:

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.AIComputer.model.Recorder.<init>(Recorder.java:124)
    at com.AIComputer.AIComputer.main(AIComputer.java:7)
javax.sound.sampled.LineUnavailableException:格式为PCM_签名16000.0 Hz、16位、立体声、4字节/帧的行,不支持little-endian。
位于com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(未知来源)
位于com.sun.media.sound.AbstractDataLine.open(未知源代码)
位于com.sun.media.sound.AbstractDataLine.open(未知源代码)
位于com.AIComputer.model.Recorder.(Recorder.java:124)
位于com.AIComputer.AIComputer.main(AIComputer.java:7)
现在我做了一些研究,发现并不是所有的声卡都支持每种格式,但是在运行此演示时: 我设法用完全相同的参数(线性、16000、16、有符号、小端点、立体声)制作了一段录音

我不知道我在这里做错了什么(也是因为我还是Java编码的初学者)


任何帮助都将不胜感激

你能说出这个异常是从代码的哪一行抛出的吗

LineUnavailableException的

当另一个应用程序已经在使用请求的行时,这种情况最常见


您在代码中打开了两行。当您尝试打开第二个时,第一个的存在会阻止它。

我想我从未使用过AudioFormat构造函数。我觉得奇怪的是,他们要求取样器和帧率——这是多余的和含糊不清的。试试另一个构造器,看看它是否有效。你有我的例子吗?正如我所说的,我只是Java的初学者,还有另一个构造器:AudioFormat(float sampleRate,int sampleSizeInBits,int channels,boolean signed,boolean bigEndian)尝试使用AudioFormat(16000,2,true,false);第一个eclipse给出了必须添加采样率的错误,这样做并再次运行该程序将导致与上面相同的错误。您能说这个异常是从代码的哪一行引发的吗?表示“当请求的行已经被另一个应用程序使用时,这种情况最常见”,并且代码中有两行。我只是想知道这是第一行还是第二行打开的。@xorinzor那么你到底需要做什么更改?@trusktr我想是在131行,我试图打开同一台设备twice@xorinzor哦,当然。谢谢我最终使用了惊人的珠子声音库(beadsproject.net)。它解决了所有的问题(尽管我只播放声音,不录音)。