Audacity 是一款易用的多轨音频编辑与录音软件,支持 Windows、macOS 和 GNU/Linux。
mackron/miniaudio
一个以单个源文件发布、无外部依赖的 C 语言音频播放与采集库。
- Star
- 7,383
- Fork
- 620
- 未关闭 Issue
- 4
- 最近提交
- 2小时前
这是什么?
miniaudio 是一个用 C 语言编写的音频播放与采集库。它以一个源文件加一个头文件的形式发布,只依赖 C 标准库,可以直接加入项目中使用,无需安装其他开发包。
库提供两层接口:底层 API 可直接访问原始音频数据,高层 API 支持音效管理、混音、效果处理以及可选的 3D 空间化。它还提供节点图系统,用于搭建自定义的混音和效果链;内置 WAV、FLAC、MP3 解码,并允许接入自定义解码器,同时支持 WAV 编码、重采样和声道映射。
miniaudio 支持 Windows、macOS、iOS、Linux、BSD 系列、Android、树莓派以及 Emscripten/HTML5。各平台使用对应的原生音频后端,如 WASAPI、Core Audio、ALSA、PulseAudio、AAudio 等,也可以在不修改库源码的情况下实现自定义后端。
核心功能
- 01以单个 C 源文件发布,除标准库外没有外部依赖。
- 02同时提供原始音频数据的底层接口和用于播放与混音的高层 API。
- 03开箱即用地解码 WAV、FLAC、MP3,并支持接入自定义解码器。
- 04提供节点图系统,用于灵活的混音和效果处理。
- 05支持重采样、声道映射和数据格式转换。
- 06在 Windows、macOS、Linux、BSD、Android 和 Web 上使用对应的原生音频后端。
适用场景
- 为 C 或 C++ 游戏添加音效和背景音乐播放。
- 在跨平台桌面或嵌入式应用中采集麦克风输入。
- 将音频文件解码为原始 PCM 数据以供分析或处理。
- 通过 Emscripten 在 WebAssembly 构建中播放音频。
快速上手
- 1
将 miniaudio.c 和 miniaudio.h 添加到源码树中
- 2
像编译其他源文件一样编译 miniaudio.c(在 Linux 和 BSD 上需链接 -lpthread 和 -lm)
cc -o app app.c miniaudio.c -lpthread -lm - 3
在代码中包含 miniaudio.h 并调用 API,例如 ma_engine_play_sound
使用前须知
- 许可证为公共领域或 MIT No Attribution 二选一,但元数据中标注为 NOASSERTION,使用前请核实条款。
- 不同版本之间不保证 ABI 兼容性,因此建议直接将源码纳入项目,而不是使用共享库。
标签
常见问题
- miniaudio 是什么?
- 一个以单个源文件发布、无外部依赖的 C 语言音频播放与采集库。 miniaudio 是一个用 C 语言编写的音频播放与采集库。它以一个源文件加一个头文件的形式发布,只依赖 C 标准库,可以直接加入项目中使用,无需安装其他开发包。
- miniaudio 可以免费使用吗?用的什么许可证?
- miniaudio 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- miniaudio 还在维护吗?
- 活跃维护中。miniaudio 最近一次提交是在 2026年10月21日。
- miniaudio 适合用来做什么?
- 为 C 或 C++ 游戏添加音效和背景音乐播放。 在跨平台桌面或嵌入式应用中采集麦克风输入。 将音频文件解码为原始 PCM 数据以供分析或处理。 通过 Emscripten 在 WebAssembly 构建中播放音频。
- miniaudio 怎么安装和运行?
- 将 miniaudio.c 和 miniaudio.h 添加到源码树中 像编译其他源文件一样编译 miniaudio.c(在 Linux 和 BSD 上需链接 -lpthread 和 -lm): cc -o app app.c miniaudio.c -lpthread -lm 在代码中包含 miniaudio.h 并调用 API,例如 ma_engine_play_sound
- 在哪里获取 miniaudio?
- 源代码和安装说明在 GitHub 上:https://github.com/mackron/miniaudio
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
无需 root 或设备端应用,即可通过 USB 或 TCP/IP 在电脑上投屏并控制 Android 设备。
Google 开源的 SDK,用一套 Dart 代码构建移动端、Web 和桌面端应用。
使用 React 构建原生 Android、iOS 等应用的框架,界面由原生组件渲染。
精选 Flutter 库、插件、教程、文章和示例项目的资源清单,按主题分类整理。
基于 Vue.js 的跨端框架,一套代码可发布到iOS、Android、鸿蒙、Web 及多家小程序平台。