Я записываю звук в массив байтов, см. Ниже:
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
recorder.setAudioSamplingRate(44100);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncodingBitRate(1024*1024);
...
while (hasRecording) {
try {
int read = inputStream.read(data, 0, data.length);
if (read == -1)
break;
byteArrayOutputStream.write(data, 0, read);
byteArrayOutputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
Во время записи я рисую амплитуду в диаграмме (на лету). После остановки записи пользователь может выбрать часть графика. А теперь как по выбору пользователя извлечь часть байтового массива? У меня есть только позиция выбранных координат и байтовый массив завершенного записанного звука. Я знаю, что мне нужно рассчитать битрейт для позиции в байтовом массиве, но я не знаю, как это сделать.
Спасибо.