Я пытаюсь выяснить, почему мой код сервлета создает волновые файлы с неправильными заголовками. Я использую:
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 нуждается в параметре размера, если только он не может извлечь размер из потока ... который не будет работать с потоком произвольного размера. Кто-нибудь знает, как заставить этот пример работать?