java如何录音
Java 录音实现方法
使用 javax.sound.sampled 包
Java 标准库中的 javax.sound.sampled 包提供了录音功能的核心类。以下是一个基本实现示例:
import javax.sound.sampled.*;
import java.io.*;
public class AudioRecorder {
public static void main(String[] args) {
try {
AudioFormat format = new AudioFormat(44100, 16, 2, true, true);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
if (!AudioSystem.isLineSupported(info)) {
System.err.println("Line not supported");
return;
}
TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
line.start();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
System.out.println("Recording...");
while (true) { // 可替换为条件控制
bytesRead = line.read(buffer, 0, buffer.length);
out.write(buffer, 0, bytesRead);
}
} catch (LineUnavailableException e) {
e.printStackTrace();
}
}
}
保存录音到文件
将录音数据保存为 WAV 文件:
AudioInputStream ais = new AudioInputStream(line);
AudioSystem.write(ais, AudioFileFormat.Type.WAVE, new File("recording.wav"));
line.close();
设置音频格式参数
关键参数说明:
- 采样率(44100 Hz)
- 采样位数(16 bit)
- 声道数(2 表示立体声)
- 是否带符号(true)
- 是否大端序(true)
使用第三方库
对于更高级功能,可考虑以下库:

- TarsosDSP:提供实时音频处理
- JavaFX:包含媒体处理组件
- JAVE (Java Audio Video Encoder):支持多种格式编码
注意事项
- 需要处理
LineUnavailableException - 录音权限需根据操作系统配置
- 长时间录音需考虑内存管理
- 实时处理音频时注意线程安全
完整实现应包含开始/停止控制、异常处理和格式配置选项。






