private void getAudioData() { if (format.getSampleSizeInBits() == 16) { nlengthInSamples = audioBytes.length / 2; audioData = new int[nlengthInSamples]; if (format.isBigEndian()) { for (int i = 0; i < nlengthInSamples; i++) { // First byte is MSB (high order) int MSB = (int) audioBytes[2 * i]; // Second byte is LSB (low order) int LSB = (int) audioBytes[2 * i + 1]; audioData[i] = MSB << 8 | (255 & LSB); } } else { for (int i = 0; i < nlengthInSamples; i++) { // First byte is LSB (low order) int LSB = (int) audioBytes[2 * i]; // Second byte is MSB (high order) int MSB = (int) audioBytes[2 * i + 1]; audioData[i] = MSB << 8 | (255 & LSB); } } } else { if (format.getSampleSizeInBits() == 8) { nlengthInSamples = audioBytes.length; audioData = new int[nlengthInSamples]; if (format.getEncoding().toString().startsWith("PCM_SIGN")) { for (int i = 0; i < audioBytes.length; i++) { audioData[i] = audioBytes[i]; } } else { for (int i = 0; i < audioBytes.length; i++) { audioData[i] = audioBytes[i] - 128; } } } } }