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

Ответить
Xempy
Сообщения: 1
Зарегистрирован: 22 авг 2019, 13:09

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

Сообщение Xempy » 22 авг 2019, 13:10

Устройство или ОС, прошивка: все платформы

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

Есть идеи?

Ответить