这个项目能做什么

miniaudio 是一个用 C 编写的音频播放和采集库,以单个源文件形式分发。根据其 README,它除标准库外没有其他依赖,目标是在主流编译器上无需安装额外开发包即可干净地编译。它面向主流桌面和移动平台。 README 中描述的主要能力: - 简单的构建系统,无外部依赖。 - 简单灵活的 API,既有用于直接访问原始音频数据的低级 API,也有用于声音管理、混音、效果和可选 3D 空间化的高级 API。 - 灵活的节点图系统,用于高级混音和效果处理。 - 用于加载声音文件的资源管理。 - 内置支持 WAV、FLAC 和 MP3 的解码,并可插入自定义解码器。 - 编码,目前仅支持 WAV。 - 数据转换、重采样(包括自定义重采样器)和声道映射。 - 基本的波形和噪声生成,以及基本的效果和滤波器。 README 指向 Programming Manual 以获取更完整的功能描述。它包含两个简短的 C 示例:一个使用高级引擎 API 播放声音,另一个使用低级设备和解码器 API 配合数据回调。 构建:像编译其他源文件一样编译 miniaudio.c,并将 miniaudio.h 作为普通头文件包含。在 Windows 和 macOS 上无需额外链接;在 Linux 和 BSD 上链接 -lpthread 和 -lm;在 iOS 上作为 Objective-C 编译;如果出现 dlopen 错误则链接 -ldl,对于某些原子内建函数错误链接 -latomic。不同版本之间不保证 ABI 兼容性,因此建议的集成方式是直接将其添加到源代码树中。也支持 CMake。 文档位于 miniaud.io/docs 以及 miniaudio.h 顶部,README 将其描述为最新且权威的来源;其他文档均由它生成。 列出的支持平台:Windows;macOS 和 iOS;Linux;FreeBSD、OpenBSD 和 NetBSD;Android;Raspberry Pi;以及 Emscripten/HTML5。其他平台可以通过自定义后端支持,而无需修改 miniaudio 源代码,如 custom_backend 示例所示。 列出的后端:WASAPI、DirectSound、WinMM、Core Audio、ALSA、PulseAudio、JACK、sndio、audio(4)、OSS、AAudio、OpenSL|ES、Web Audio、Null(静音)和 Custom。 安全信息由单独的安全策略文件涵盖。许可可选择公有领域或 MIT No Attribution。