用Java将wav文件写入内存

时间:2010-05-14 17:13:49

标签: java servlets audio

我正在试图弄清楚为什么我的servlet代码会使用不正确的标头创建wave文件。我用:

AudioSystem.write(
  new AudioInputStream(
  new ByteArrayInputStream(memoryBytes), new AudioFormat(22000, 16, 1, true,false), memoryBytes.length
  ),
  AudioFileFormat.Type.WAVE, servletOutputStream
);

从内存中获取包含原始PCM样本的字节数组和返回给客户端的servlet输出流。在结果中,我得到一个普通的波形文件,但在块大小字段中有零。 API被破坏了吗?我认为可以使用音频输入流中传递的大小填充大小。但是现在,在输入之后,我认为它不会使这个信息可用于AudioSystem上的外部write()方法。似乎AudioSystem.write调用需要一个size参数,除非它能够从流中提取大小...这对于任意大小的流都不起作用。有谁知道如何使这个例子有效?

0 个答案:

没有答案