我制作了一个 java 录音机,想知道我录制的每个音频样本的系统时间戳。我以 44.1KHz 录制 1 秒。对于每个样本(有 441000 个),我想记录麦克风检测到声音的时间(系统时间戳)。如果可能的话,我将如何做到这一点?我想要+-1ms的精度。
这是我正在使用的代码的快照。
AudioFormat format = new AudioFormat(44100f, 8, 1, true, false);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
line.start();
byte[] buff = new byte[line.getBufferSize()];
while(recording){
int index = line.read(buff, 0, buff.length);
out.write(buff, 0, index);
}
line.stop();
line.close();
byte[] audio = out.toByteArray();
谢谢
编辑
只要它准确,就可以每隔一个样本,甚至每 10 个样本获取一个时间戳。我的意思是 44100* 个样本。