【发布时间】:2010-11-05 20:58:25
【问题描述】:
我需要将音频数据作为“16 位整数数组”(来自我拥有的有限文档)传递到第 3 方系统。
这是我迄今为止尝试过的(系统从生成的 bytes.dat 文件中读取它)。
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File("c:\\all.wav"));
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
BufferedWriter fileOut = new BufferedWriter(new FileWriter(new File("c:\\temp\\bytes.dat")));
ByteBuffer bb = ByteBuffer.wrap(buffer);
while (bb.remaining() > 1) {
short current = bb.getShort();
fileOut.write(String.valueOf(current));
fileOut.newLine();
}
这似乎不起作用 - 3rd 方系统无法识别它,我也无法将文件作为原始音频导入 Audacity。
有什么明显的我做错了,或者有更好的方法吗?
额外信息:波形文件为 16 位,44100Hz,单声道。
【问题讨论】:
-
您能详细介绍一下这个第 3 方系统吗?
标签: java