【发布时间】:2011-06-17 02:31:10
【问题描述】:
我想使用 Java 应用程序录制语音;我想这基本上是一个在客户端运行的小程序。但我不知道该怎么做......有什么想法吗?另外,我想播放录制的声音。
我听说过 Java Speech API。知道它是否有帮助?
【问题讨论】:
-
@pingw33n - 太复杂了,无法理解 :(
标签: java audio audio-recording applet
我想使用 Java 应用程序录制语音;我想这基本上是一个在客户端运行的小程序。但我不知道该怎么做......有什么想法吗?另外,我想播放录制的声音。
我听说过 Java Speech API。知道它是否有帮助?
【问题讨论】:
标签: java audio audio-recording applet
我迟到了,但这里是关于捕获音频的官方文档:http://docs.oracle.com/javase/tutorial/sound/capturing.html
(并且直接从上面的链接中复制了一些示例代码:)
TargetDataLine line;
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
format); // format is an AudioFormat object
if (!AudioSystem.isLineSupported(info)) {
// Handle the error ...
}
// Obtain and open the line.
try {
line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
} catch (LineUnavailableException ex) {
// Handle the error ...
}
// Assume that the TargetDataLine, line, has already
// been obtained and opened.
ByteArrayOutputStream out = new ByteArrayOutputStream();
int numBytesRead;
byte[] data = new byte[line.getBufferSize() / 5];
// Begin audio capture.
line.start();
// Here, stopped is a global boolean set by another thread.
while (!stopped) {
// Read the next chunk of data from the TargetDataLine.
numBytesRead = line.read(data, 0, data.length);
// Save this chunk of data.
out.write(data, 0, numBytesRead);
}
【讨论】:
stopped 变量本质上是一个变量的占位符,您应该在其他地方设置/创建/维护以了解您是否应该停止录制。所以这对你的情况非常特殊。