Работаю над программой, которая записывает звук и сохраняет только последние несколько секунд записи. Используется для этого сохранение массива byte[].
Проблема в том, что если запись больше, чем заданной ограничение, то на выходе получается белый шум.
В случае же, если запись меньше ограничения (т.е. ни байта не было отрезано), проблемы нет.
Код: Выделить всё
ArrayList<Byte> local = new ArrayList<>();
if (readedBytes.size() > RECORDER_SAMPLERATE * 10) {
for (int i = readedBytes.size() - 1 - RECORDER_SAMPLERATE * 10; i < readedBytes.size() - 1; i++) {
local.add(readedBytes.get(i));
}
} else {
local.addAll(readedBytes);
}
byte[] array;
array = new byte[local.size()];
for (int i = 0; i < array.length; i++) {
array[i] = local.get(i);
}
Есть идеи?