Мультиплатформенная библиотека C++ для воспроизведения / записи аудио (.wav,.ogg)


У меня есть мультиплатформенное приложение и я хочу добавить функциональность аудио аннотаций. Я ищу библиотеку воспроизведения /записи аудио, которая является:

  • мультиплатформенные (Windows, Linux, Mac)
  • простая и быстрая интеграция в существующий проект
  • Не используйте cygwin для сборки Windows
  • имеет привязки C++

Я видел gstreamer но у меня такое чувство, что он слишком продвинутый для моих простых случаев использования

3 3

3 ответа:

Вы заглядывали в SDL ? Это должно быть в состоянии воспроизводить OGG файлы и WAV файлы.

Я использовал sox , но в настоящее время он, кажется, сломан для записи на Mac. Если вы можете записывать с вашего устройства без него, он имеет хорошие функции обработки файлов.

PortAudio используется в громком звуковом приложении Audiomulch.

Я не использовал RtAudio, но я использовал проекты, которые его используют. Он обрабатывает JACK, CoreAudio, ALSA, OSS, DirectSound и ASIO.

Libsndfile является общей зависимостью для проектов, которые должны иметь дело с аудиофайлами в качестве альтернативы Сокс.

Я уверен, что ffmpeg подходит. Поддержка форматов почти бесконечна, и она доказала свою ценность. К сожалению, для его сборки потребуется UNIX-подобная оболочка. Вам не нужен Cygwin, но вы можете использовать MSYS для этого, для чего вы можете найти актуальное двоичное распределение здесь. Это может быть излишним для простой функциональности аудио (записи), но вы упоминаете возможность поддержки различных форматов. Вы не можете компилировать ffmpeg с компиляторами Visual C++, но вы можете использовать его как только библиотека собрана GCC или другим компилятором, совместимым с C99.