miniaudio - 音频播放和采样库
miniaudio 使用 C 语言编写,除了标准库之外没有任何依赖项,可以在所有主流编译器上顺利编译,无需安装任何其他开发包。它支持所有主流桌面和移动平台。
特性
- 简单的构建系统,没有外部依赖。
- 简单灵活的 API。
- 用于直接访问原始音频数据的低级 API。
- 用于声音管理、混合、效果和可选 3D 空间化的高级 API。
- 灵活的节点图系统,用于高级混合和效果处理。
- 用于加载声音文件的资源管理。
- 解码,内置对 WAV、FLAC 和 MP3 的支持,此外还能够插入自定义解码器。
- 编码(仅限 WAV)。
- 数据转换。
- 重采样,包括自定义重采样器。
- 通道映射。
- 波形和噪声的基本生成。
- 基本效果和过滤器。
有关 miniaudio 中可用功能的更完整描述,参阅编程手册。
示例
此示例展示了使用高级 API 播放声音的一种方法。
#include "miniaudio/miniaudio.h"
#include <stdio.h>
int main()
{
ma_result result;
ma_engine engine;
result = ma_engine_init(NULL, &engine);
if (result != MA_SUCCESS) {
return -1;
}
ma_engine_play_sound(&engine, "sound.wav", NULL);
printf("Press Enter to quit...");
getchar();
ma_engine_uninit(&engine);
return 0;
}
此示例展示了如何使用低级 API 解码和播放声音。
#include "miniaudio/miniaudio.h"
#include <stdio.h>
void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount)
{
ma_decoder* pDecoder = (ma_decoder*)pDevice->pUserData;
if (pDecoder == NULL) {
return;
}
ma_decoder_read_pcm_frames(pDecoder, pOutput, frameCount, NULL);
(void)pInput;
}
int main(int argc, char** argv)
{
ma_result result;
ma_decoder decoder;
ma_device_config deviceConfig;
ma_device device;
if (argc < 2) {
printf("No input file.\n");
return -1;
}
result = ma_decoder_init_file(argv[1], NULL, &decoder);
if (result != MA_SUCCESS) {
return -2;
}
deviceConfig = ma_device_config_init(ma_device_type_playback);
deviceConfig.playback.format = decoder.outputFormat;
deviceConfig.playback.channels = decoder.outputChannels;
deviceConfig.sampleRate = decoder.outputSampleRate;
deviceConfig.dataCallback = data_callback;
deviceConfig.pUserData = &decoder;
if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) {
printf("Failed to open playback device.\n");
ma_decoder_uninit(&decoder);
return -3;
}
if (ma_device_start(&device) != MA_SUCCESS) {
printf("Failed to start playback device.\n");
ma_device_uninit(&device);
ma_decoder_uninit(&decoder);
return -4;
}
printf("Press Enter to quit...");
getchar();
ma_device_uninit(&device);
ma_decoder_uninit(&decoder);
return 0;
}
更多示例可以在示例文件夹或在线此处找到: https://miniaud.io/docs/examples/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
消息称谷歌即将在 Gemini 和 API 上发布 VEO 3.1 版本
谷歌近期有消息称,VEO3.1的公共发布即将来临。随着 Gemini 应用程序中出现相关免责声明,谷歌正在为广泛用户群展示 VEO3.1的功能,这可能会在用户熟悉的 Gemini 界面中实现。 社区中知名人士 Logan Kilpatrick 在社交媒体平台 X 上发布的帖子被广泛视为谷歌 AI 新产品发布的早期确认。此外,在 Vertex AI 中也出现了 “VEO3.0Generate” 和 “VEO3.0Fast Generate” 等预览模型的引用,这表明谷歌正在为早期用户和企业用户提供多个访问渠道,符合他们在生成视频工具发布中的传统策略。 关于输出时长,社区中的讨论热烈,有证据表明视频时长可能从之前的8秒延长至30秒,尽管这一点尚待确认。过去的泄露信息显示,快速模式的质量较低,而标准模式预计将解锁更高的输出质量,这对希望提升视觉质量和叙事潜力的创作者尤为重要。根据 TestingCatalog 的报道,之前的720p 视频生成已展现出 VEO3.1的进步,包括新的音频能力和改进的视觉效果,这使其在竞争中挑战了类似 Sora2的产品。 谷歌的整体产品战略是将 Gemini 打造...
-
下一篇
北京查处首例 AI 虚假广告案:AI 冒充知名主持人卖鱼油
北京市场监管局近日通报了一起利用 AI 技术发布虚假广告的案件。 2025 年 6 月,北京市海淀区市场监管局查处了某公司利用AI技术冒用央视知名主持人名义和形象的虚假广告案。该公司通过AI技术剪辑知名主持人视频,加入自行设计的口播内容,在自有网络视频账号上以短视频等形式发布普通食品“深海多烯鱼油”广告,宣称“可以解决头晕头痛、手麻脚麻、四肢乏力”等医疗功效,违反了《中华人民共和国广告法》相关规定,已接受行政处罚。 北京市市场监管局提醒消费者,主持人、网红等公众人物,社会认知度高,一些不法经营者利用AI技术等方式伪造图片、音视频开展虚假宣传,借助公众人物知名度,推销商品服务获利,侵犯了消费者合法权益。消费者若发现疑似违法行为,可留存证据材料,拨打12315、12345热线向市场监管部门举报。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 面试大杂烩
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL数据库在高并发下的优化方案