Записывать волновые файлы в память на Java - PullRequest
1 голос
/ 14 мая 2010

Я пытаюсь выяснить, почему мой код сервлета создает волновые файлы с неправильными заголовками. Я использую:

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

извлечение байтового массива из памяти, содержащей необработанные образцы PCM и выходной поток сервлета, который возвращается клиенту. В результате я получаю обычный волновой файл, но с нулями в полях размера чанка. API сломан? Я думаю, что размер может быть заполнен с использованием размера, передаваемого в аудиовходе. Но теперь, после того, как я это напечатал, я думаю, что это не делает эту информацию доступной для внешнего метода write () в AudioSystem. Кажется, что вызов AudioSystem.write нуждается в параметре размера, если только он не может извлечь размер из потока ... который не будет работать с потоком произвольного размера. Кто-нибудь знает, как заставить этот пример работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...