public class AudioRecode {
public void recode() throws LineUnavailableException, InterruptedException, IOException {
final String savePath = "文件保存目录,自拟";
AudioFormat audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
8000, 16, 1, 2, 8000, true);
DataLine.Info info = new DataLine.Info(TargetDataLine.class,audioFormat);
final TargetDataLine targetDataLine = (TargetDataLine) AudioSystem.getLine(info);
targetDataLine.open(audioFormat);
targetDataLine.start();
Thread audioThread = new Thread(new Runnable() {
public void run() {
AudioInputStream cin = new AudioInputStream(targetDataLine);
try {
System.out.println("开始录音");
File saveFile = new File(savePath);
AudioSystem.write(cin, AudioFileFormat.Type.WAVE, saveFile);
System.out.println("录音结束");
} catch (Exception e) {
e.printStackTrace();
return;
}
};
});
audioThread.start();
TimeUnit.SECONDS.timedJoin(audioThread,5); //对话时间长度
if (audioThread.isAlive()){
audioThread.interrupt();
}
}
}
这里将文件保存成了wav文件。
很简单的程序,使用的JDK sound,不需要第三方Jar包,写的时候也在网上参考了半天。