【发布时间】:2014-02-12 07:15:07
【问题描述】:
我是编程新手,我想了解更多信息。
我想通过我的麦克风实时录制声音。下面是我的录制代码。
while (true) {
int numBytesRead = line.read(data, 0, data.length);
out.write(data, 0, numBytesRead);
}
我尝试在那里输入一些代码并播放一些数据块,但几秒钟后,录制延迟了大约 3 秒钟。另外,当我试图说话时,它会循环播放我想说的话
while (true) {
int numBytesRead = line.read(data, 0, data.length);
out.write(data, 0, numBytesRead);
try {
byte audio[] = out.toByteArray();
InputStream input = new ByteArrayInputStream(audio);
final SourceDataLine line1 = (SourceDataLine) AudioSystem.getLine(info1);
final AudioInputStream ais = new AudioInputStream(input, format, audio.length / format.getFrameSize());
int bufferSize = (int) format.getSampleRate() * format.getFrameSize();
line1.open(format);
line1.start();
byte buffer[] = new byte[bufferSize];
try {
while (true) {
numBytesRead = ais.read(buffer, 0, buffer.length);
if (numBytesRead == -1) break;
line1.write(buffer, 0, numBytesRead);
}
} catch (IOException e) {
System.err.println("I/O problems: " + e);
System.exit(-3);
}
}
有人可以帮我完成我的项目吗?
【问题讨论】: