ByteInputStream b = new ByteInputStream(audioData);
DataInputStream data = new DataInputStream(b);
short value = data.readShort();
Преимущество приведенного выше кода состоит в том, что вы можете продолжать читать остальную часть «данных» таким же образом.
Более простое решение для двух значений:
short value = (short) ((audioData[0]<<8) | (audioData[1] & 0xff));
Это простое решение извлекает два байта и объединяет их вместе, причем первый байт является битами высшего порядка, а второй - битами младшего порядка (это называется Big-Endian; если ваш байтовый массив содержал данные Little-Endian вместо этого вы бы сдвинули второй байт вместо 16-битных чисел, для 32-битных чисел с прямым порядком байтов вам пришлось бы изменить порядок всех 4 байтов, потому что целые числа Java следуют за порядком больших порядков).