Разбивание PCM потока, белый шум на выходе

 
 
 
Сообщения:1
Работаю над программой, которая записывает звук и сохраняет только последние несколько секунд записи. Используется для этого сохранение массива 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);
    }



Важно! При сохранении на оба варианта создаётся .wav header так, что проблема (скорее всего) не в нём.

Есть идеи?
 
 
Сообщения:9847
А на одно значение отводится 1 байт? Потому что если глубина звука 2+ байт, то ты возможно режешь 1ое значение где-то по-середине, ну соответственно следующее и т.д.

PS: работа с ArrayList<Byte> будет очень медленной. Нужно использовать byte[].
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет