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