Повторное использование экземпляра ресемплера Android Oboe (MultiChannelResampler)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Повторное использование экземпляра ресемплера Android Oboe (MultiChannelResampler)

Сообщение Anonymous »

Я использую библиотеку гобоя и ресэмплер::MultiChannelResampler для имитации сдвига высоты тона с изменением длительности в небольших аудиоклипах (фортепиано). Это хорошо работает, когда я создаю новый экземпляр ресэмплера каждый раз, когда хочу сыграть ноту, но я хотел бы избежать этих накладных расходов и повторно использовать экземпляр ресэмплера. Однако всякий раз, когда я использую его повторно, я слышу щелчок/хлопок в начале воспроизведения, что, вероятно, связано с тем, что в ресемплере еще остались данные от последнего использования (воспроизведение можно остановить до полного завершения клипа). Я хотел бы знать, есть ли способ очистить внутренние данные ресэмплера без необходимости создания нового экземпляра.
Я хотел бы иметь возможность повторно использовать ресэмплер Oboe без проблем. с щелчком/всплыванием в начале
Изменить: добавлен код:
Я использую пример из документа Oboe resampler. Итак, когда я нажимаю клавишу, ресэмплер заполняется кадрами, и я жду вывода ресэмплера, когда это произойдет. Как здесь:
https://github.com/google/oboe/tree/mai ... /resampler

Код: Выделить всё

int outputFramesLeft = numOutputFrames;
while (outputFramesLeft > 0) {
if(resampler->isWriteNeeded()) {
const float *frame = getNextInputFrame(); // you provide this
resampler->writeNextFrame(frame);
} else {
resampler->readNextFrame(outputBuffer);
outputBuffer += channelCount;
outputFramesLeft--;
}
}
После использования этого ресэмплера, который может перестать заполняться в любой момент (при отпускании клавиши фортепиано), я хочу переназначить его на новую нажимаемую ноту. Однако при использовании того же экземпляра в первых кадрах нового аудиоклипа происходит щелчок/хлопок, который, как я полагаю, связан с остатками данных от его последнего использования. Поэтому я хотел бы знать, как очистить ресэмплер, чтобы его можно было повторно использовать без этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/793 ... lresampler
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»