Я довольно новичок в WASAPI, и я пытаюсь написать программу на C++, которая смотрит на аудиопоток на основном устройстве воспроизведения и выполняет FFT на каждом фрагменте через fftw3, что-то делает с результатом и отбрасывает кусок. Каждый пример, который я смог найти на WASAPI и fftw3, включает запись в файл и открытие этого файла. Можно ли обрабатывать куски WAVE напрямую?Как я могу обрабатывать фрагменты звуковых данных из потока WASAPI, не записывая их в файл?
0
A
ответ
0
Звуковой захват WASAPI обычно заполняет буферы памяти «только что записанными» аудиоданными и передает их обратно в управляющее приложение. «Без записи в файл» - так оно и работает на первом месте. Это требует дополнительных усилий для записи данных в мультимедийный файл с сжатием или без него.
Вы можете быть заинтересованы в следующих Windows SDK samples:
- CaptureSharedEventDriven - Данное приложение использует Core Audio API, чтобы захватить аудио данные с устройства ввода, заданные пользователем, и записывает его в уникальное имя. WAV в текущем каталоге. Этот пример демонстрирует буферизацию, управляемую событиями.
- CaptureSharedTimerDriven - это пример приложения использует API-интерфейсы Core Audio для захвата аудиоданных с устройства ввода, указанного пользователем, и записывает его в файл с уникальным именем .WAV в текущем каталоге. Этот пример демонстрирует буферизацию с таймером.
Оба показывают, как данные перемещаются из API через буферы памяти, в файлы. Вы можете применять БПФ в момент, когда у вас есть данные, полученные от API, прежде чем они попадут в файлы в образцах.
Смежные вопросы
- 1. Как я могу обрабатывать сообщения окна из отдельного потока?
- 2. Как я могу «обновить» фрагменты в ViewPager?
- 3. Как я могу запросить ввод данных из фонового потока?
- 4. Я могу просто использовать фрагменты из all.snippets
- 5. Как я могу написать фрагменты списка в мой CSV-файл?
- 6. Как я могу заставить Android загружать динамически генерируемый байт-код dalvik, не записывая сначала файл?
- 7. как я могу передать данные первой формы ко второй, не записывая эти данные в базу данных?
- 8. Могу ли я просматривать журналы Windows Azure в прямом эфире, не записывая их на хранение?
- 9. Как я могу ограничить поведение потока методом, который их вызывает?
- 10. Как я могу обрабатывать файл не двоичный (git)
- 11. Постоянно записывая данные в файл
- 12. python, записывая Json в файл
- 13. Как я могу вывести значение из потока?
- 14. Как использовать audioop для средних звуковых данных
- 15. Как я могу обрабатывать переводы данных, хранящихся в базе данных?
- 16. Фрагменты кода: Где я их храню?
- 17. XNA Audio и конфликт WASAPI?
- 18. Как обрабатывать зависимости действия потока
- 19. Как я могу вызвать метод getHandler() потока из другого потока?
- 20. Как я могу назвать фрагменты из разных пакетов в лифте?
- 21. Обрабатывать фрагменты из ViewPager при изменении ориентации
- 22. Как правильно обрабатывать прерывания потока
- 23. Как я могу удаленно развернуть файл потока в Node-RED?
- 24. Как я могу обрабатывать пробелы в аргументах?
- 25. Данные из потока не записаны в файл
- 26. Как я могу обрабатывать файл ByteArray в Javascript
- 27. Как я могу обрабатывать атрибуты в python?
- 28. MPEG Transport Stream Информация о звуковых данных
- 29. Как я могу отмерить, сколько данных я получаю из потока файлов в python?
- 30. Как я могу раздуть свои дочерние фрагменты?
Похоже, что ваш вопрос связан с FFTW, и не имеет никакого отношения к WASAPI? –
Я предполагаю, что это больше того, что мне интересно, как WASAPI возвращает фрагменты RIFF и что мне нужно знать для их обработки. – user2977512