Android - открытое - инвертированный звук - анти-шум

Я очень плохо знаком с обработкой аудио и системой opensl es. В настоящее время я разрабатываю приложение, которое генерирует анти-шум. Моя идея - инвертировать значения в очереди аудио-буфера, однако все методы, которые я пробовал, не работают. Я использую opensles, так как мое приложение требует низкой задержки.

Конфигурация:

uint8_t *buffer; //buffer size is 384
engine.bitsPerSample_ = SL_PCMSAMPLEFORMAT_FIXED_16;
engine.sampleChannels_ = 1;

Методы пробовал:

  • Побитовое отрицание: например
    bufffer[i] = ~buffer[i];
  • стандартная математика: например, если buffer [i] равен 200, то buffer[i] = 127–73(разница между 127 и 200);
  • Различные другие методы, которые были более или менее методом проб и ошибок

Цель:
Все значения в буфере корректно инвертированы, и при постановке в очередь в SLAndroidSimpleBufferQueueItf звук воспроизведения является обратным к источнику.


Кто-нибудь знает, как лучше это решить?


Любая помощь будет принята с благодарностью:)

0 ответов

Другие вопросы по тегам