使用以下代码时: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编码的初学者)。
任何帮助将不胜感激!
答案 0 :(得分:7)
你能说你的代码从哪一行抛出这个异常?
LineUnavailableException的docs表示
当请求的行已被其他应用程序使用时,这种情况最常出现。
您在代码中打开两行。当你试图打开第二个时,第一个存在会阻止它。