5

使用以下代码时:http: //pastebin.com/5iVnttiP

我收到此错误:

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)

现在我做了一些研究,发现并非所有声卡都支持每种格式,但是在运行这个演示时:http: //java.sun.com/products/java-media/sound/samples/JavaSoundDemo/ 我设法制作了一个使用完全相同的参数(线性、16000、16、有符号、小端序、立体声)进行录制。

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

任何帮助将不胜感激!

4

1 回答 1

9

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

LineUnavailableException的文档说

当请求的线路已被另一个应用程序使用时,这种情况最常见。

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

于 2012-08-19T20:37:34.407 回答