Эффективно обрезать внутри петли - PullRequest
0 голосов
/ 14 марта 2019

У меня есть операция, где я читаю данные из буфера, и мне нужно их обрезать перед передачей. audioRecord.read() возвращает переменное количество данных.

short[] data = new short[bufferSizeInBytes];

while (shouldRecord) {
    int numberOfShortsRead = audioRecord.read(data, 0, data.length);
    if (numberOfShortsRead > 0) {
        // we are allocating memory here every time =\
        short[] trimmed = new short[numberOfShortsRead];
        System.arraycopy(data, 0, trimmed, 0, numberOfShortsRead);
        doSomething(trimmed);
    }
}

Я вижу некоторые OutOfMemory исключения после прочтения некоторое время. Как я могу эффективно выполнить эту обрезку без необходимости выделять память для каждого возможного обрезанного размера массива?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...