Как я могу обрабатывать фрагменты звуковых данных из потока WASAPI, не записывая их в файл?

Я довольно новичок в WASAPI, и я пытаюсь написать программу на C ++, которая просматривает аудиопоток на основном устройстве воспроизведения и выполняет FFT для каждого фрагмента через fftw3, что-то делает с результатом и отбрасывает блок , Каждый пример, который я смог найти на WASAPI и fftw3, включает в себя запись в файл и затем открытие этого файла. Можно ли обрабатывать куски WAVE напрямую?

0

Решение

Захват аудио WASAPI обычно заполняет буферы памяти «только что захваченными» аудиоданными и передает их обратно в управляющее приложение. «Без записи в файл» — так все и работает. Это требует дополнительных усилий для записи данных в мультимедийный файл со сжатием или без него.

Вы можете быть заинтересованы в следующем Образцы Windows SDK:

  • CaptureSharedEventDriven — этот пример приложения использует API-интерфейсы Core Audio для захвата аудиоданных с устройства ввода, указанного пользователем, и записи их в файл с уникальным именем .WAV в текущем каталоге. Этот пример демонстрирует управляемую событиями буферизацию.
  • CaptureSharedTimerDriven — этот пример приложения использует API-интерфейсы Core Audio для захвата аудиоданных с устройства ввода, указанного пользователем, и записи их в файл с уникальным именем .WAV в текущем каталоге. Этот пример демонстрирует управляемую таймером буферизацию.

Оба показывают, как данные перемещаются из API через буферы памяти в файлы. Вы можете применить БПФ в тот момент, когда у вас есть данные, полученные из API, прежде чем они перейдут к файлам в примерах.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]