Мне нужно передать аудиоданные в стороннюю систему в виде «16-битного целочисленного массива» (из имеющейся у меня документации).
Это то, что я пробовал до сих пор (система считывает это из полученного файла 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();
}
Это, похоже, не работает - сторонняя система не распознает его, и я также не могу импортировать файл в Audacity как необработанный звук.
Есть ли что-то очевидное, что я делаю неправильно, или есть лучший способ сделать это?
Дополнительная информация: волновой файл 16 бит, 44100 Гц, моно.