Repolode
mackron

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. 1

    将 miniaudio.c 和 miniaudio.h 添加到源码树中

  2. 2

    像编译其他源文件一样编译 miniaudio.c(在 Linux 和 BSD 上需链接 -lpthread 和 -lm)

    cc -o app app.c miniaudio.c -lpthread -lm
  3. 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 数据每日更新。

相关项目