NAudio:5行C代码让MP3出声,.NET音频播放与录制入门

发布时间:2026/8/21 21:30:46

NAudio:5行C代码让MP3出声,.NET音频播放与录制入门
NAudio5行C#代码让MP3出声.NET音频播放与录制入门【免费下载链接】NAudioAudio and MIDI library for .NET项目地址: https://gitcode.com/gh_mirrors/na/NAudioNAudio 是 .NET 平台上的音频与 MIDI 开源库音频播放、音频录制、格式转换和实时效果处理都在里面。它适合要写播放器、录音工具、音频处理器的 C# 开发者如果你只是想要一个现成播放器控件它不是给你用的。读完这篇文章你能得到一段能出声的控制台代码以及一张哪个场景用哪个类的速查表。写音频程序你最常被卡住的三件事压缩格式解码。调 ACM、Media Foundation 的 C API 很繁琐。NAudio 里 AudioFileReader 一个类就能打开 WAV、MP3、AIFF底层编解码器它自己挑Linux 上则用 NAudio.SoundFile 包覆盖 FLAC、Ogg Vorbis、Opus 等格式。低延迟与独占输出。WASAPI 的 COM 接口、事件回调、独占模式的格式协商都很细碎。NAudio 3 的WasapiPlayer/WasapiPlayerBuilder把这些包成一行链式配置ASIO 也有对应的AsioDevice。跨平台。NAudio.Core、NAudio.Midi、NAudio.Sampler、NAudio.SoundFile在 Windows、Linux、macOS 上都能跑Linux 输出用NAudio.Alsa播放、录音、DSP、MIDI 不用换库。3分钟跑通第一个能出声的Demo先装包元包会拉齐 Windows 全栈非 Windows 目标框架下只解析跨平台部分dotnet add package NAudio再写最短的代码。AudioFileReader负责把 MP3 解成 PCMWaveOut负责把 PCM 送到声卡Init把两者接起来using NAudio.Wave; using var reader new AudioFileReader(song.mp3); // 自动识别格式并解码 using var output new WaveOut(); // 取默认输出设备 output.Init(reader); output.Play(); // 开始播放不阻塞 while (output.PlaybackState PlaybackState.Playing) Thread.Sleep(100);跑起来声音就出来了。Play只表示开始所以用PlaybackState轮询等它播完真实应用里应订阅PlaybackStopped事件后面会讲原因。它到底能帮你做哪些事你的场景用什么所在包Windows 应用播放音频WasapiPlayerWASAPI 共享模式自动重采样音质和延迟均衡NAudio.Wasapi录麦克风或捕获系统声音WasapiRecorder支持 loopback 抓系统音频NAudio.Wasapi把 MP3/WAV 转成别的格式MediaFoundationReaderWaveFileWriter几行代码NAudio.Wasapi加 EQ、混响、压缩、变调NAudio.Effects无杂音 bypass、干/湿混合比例NAudio.Core用 SoundFont 弹 MIDISoundFontSampler软件采样器.sf2直接用NAudio.Sampler读/写标准 MIDI 文件MidiFile事件模型NAudio.Midi专业声卡多声道低延迟AsioDeviceNAudio.Asio完整能力列表在仓库根目录的 README 里按播放、编码、混音、录制、MIDI 分类写得很清楚。从Demo到能上线的项目资源释放太早。表现Stop之后立刻Dispose随机崩溃或最后一截声音被截掉。原因WaveOut在后台线程填缓冲区Stop返回时线程可能还没退出。解法把清理放进PlaybackStopped事件里它保证在线程退出后触发且 WinForms/WPF 中会切回创建设备时的 UI 线程可以直接操作界面。以为Play是阻塞的。表现控制台程序跑完直接退出声音没响。Play只启动播放结束靠PlaybackStopped事件或轮询PlaybackState感知出错时该事件同样会触发e.Exception里有原因。延迟不合适。表现做鼓机、乐器应用时感觉拖沓。WaveOut默认 100ms × 2 块缓冲总延迟约 200ms。可调小BufferMilliseconds或对延迟敏感的场景换 WASAPI 共享模式低延迟且免重采样负担或 ASIO。继续往下走任务型教程都放在 Docs/ 目录播放、录制、编解码、MIDI、Linux/ALSA 都有单独一篇按任务名找就行。想看完整应用怎么组织代码翻 samples/NAudioDemo这是 WinForms 示例集设备枚举、录音、MIDI 输入都有面板演示且跟着主库同步更新。想了解 NAudio 3 为什么拆成这些包看 Docs/Architecture/NAudio3AssemblyLayoutPlan.md从 NAudio 2 升级则先读 Docs/MigratingFromNAudio2.md。从能出声到能上线差的就是上面三个提醒和 Docs 里对应的那篇教程。把 MP3 换成你自己的文件这个库剩下的部分你可以按场景逐个取用。【免费下载链接】NAudioAudio and MIDI library for .NET项目地址: https://gitcode.com/gh_mirrors/na/NAudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Python函数默认参数设置

Python函数默认参数设置

2026/8/21 21:30:46

我们清楚, 于调用函数之际, 要是未指定某一参数, 解释器会抛出异常。为处理此问题, 允许给参数设定默认值, 也就是在定义函数之时, 直接给形式参数赋予一个默认值, 如此一来, 哪怕调用函数时未给具备默认值的形参传递参数, 该参数能够直接运用定义函数时设置的默认值。定义带有…

GIMP批量图像处理BIMP完整教程:3个真实任务搞定批量水印、格式转换与重命名

GIMP批量图像处理BIMP完整教程:3个真实任务搞定批量水印、格式转换与重命名

2026/8/21 21:20:45

GIMP批量图像处理BIMP完整教程:3个真实任务搞定批量水印、格式转换与重命名 【免费下载链接】gimp-plugin-bimp BIMP. Batch Image Manipulation Plugin for GIMP. 项目地址: https://gitcode.com/gh_mirrors/gi/gimp-plugin-bimp BIMP(Batch Ima…

Robotics Toolbox for Python 安装指南:pip 一条命令上手机器人运动学工具箱

Robotics Toolbox for Python 安装指南:pip 一条命令上手机器人运动学工具箱

2026/8/21 21:20:45

Robotics Toolbox for Python 安装指南:pip 一条命令上手机器人运动学工具箱 【免费下载链接】robotics-toolbox-python Robotics Toolbox for Python 项目地址: https://gitcode.com/gh_mirrors/ro/robotics-toolbox-python Robotics Toolbox for Python 是…

TikTok Shop上架软件:轻松管理200+店铺的底层防风控实战

TikTok Shop上架软件:轻松管理200+店铺的底层防风控实战

2026/8/21 22:20:48

TikTok Shop上架软件:轻松管理200店铺的底层防风控实战 每次有人问我店群怎么做大,我就一句话:TikTok Shop的自动化上架,是店群运营中最耗人力也最容易出错的环节。 手动上架一个商品从填写标题、上传主图、设置SKU、填写详情到…

嵌入式Qt开发实战:智能体式开发与生产级落地指南

嵌入式Qt开发实战:智能体式开发与生产级落地指南

2026/8/21 22:20:48

大家好,我是专注于嵌入式与桌面应用开发的博主。在工业控制、医疗设备、车载信息娱乐等嵌入式领域,我们常常面临一个核心矛盾:如何在资源受限、实时性要求高的硬件上,构建出稳定、可靠且交互体验优秀的图形界面应用?传…

几步把图表里的数据点提出来:Engauge Digitizer 免费使用指南

几步把图表里的数据点提出来:Engauge Digitizer 免费使用指南

2026/8/21 22:20:48

几步把图表里的数据点提出来:Engauge Digitizer 免费使用指南 【免费下载链接】engauge-digitizer Extracts data points from images of graphs 项目地址: https://gitcode.com/gh_mirrors/en/engauge-digitizer 怎么从图表图像里提取数据点? 论…

GetQzonehistory:免费备份QQ空间历史说说的开源工具

GetQzonehistory:免费备份QQ空间历史说说的开源工具

2026/8/21 22:20:48

GetQzonehistory:免费备份QQ空间历史说说的开源工具 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 几年前的QQ空间说说想翻出来,却发现很多已经删掉或找不到了。…

2026年Java招聘趋势与技术生态发展分析

2026年Java招聘趋势与技术生态发展分析

2026/8/21 22:20:48

1. Java技术生态的现状与未来展望 2026年Java是否还会保持"金三银四"的招聘热潮?这个问题背后折射出的是开发者对Java技术生态长期价值的关注。作为一门拥有28年历史的编程语言,Java至今仍保持着惊人的生命力。根据2023年TIOBE指数显示&#x…

nginx-rtmp-module 完整教程:RTMP 推流与 HLS 转封装一次跑通

nginx-rtmp-module 完整教程:RTMP 推流与 HLS 转封装一次跑通

2026/8/21 22:10:47

nginx-rtmp-module 完整教程:RTMP 推流与 HLS 转封装一次跑通 【免费下载链接】nginx-rtmp-module NGINX-based Media Streaming Server 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-module nginx-rtmp-module 是为标准 Nginx 补上流媒体能力的…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/21 21:41:19

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/20 21:07:35

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

091、主从同步控制策略

091、主从同步控制策略

2026/8/21 0:09:47

091、主从同步控制策略:从一次多轴抖动事故说起 去年调试一台四轴龙门平台,Z轴和两个X轴做主从同步。电机选的是台达A2系列,驱动器工作在位置模式,主站发脉冲指令,从站硬线跟随。调试时发现一个诡异现象:当主站以500rpm匀速运行时,从站电流波形每隔几秒会出现一次毛刺,…

向量检索实验失败后该查什么

向量检索实验失败后该查什么

2026/8/21 0:09:47

向量检索实验失败后该查什么 这篇要解决什么 向量检索实验失败后该查什么讨论的是一个可复查的工程问题。向量检索实验失败后该查什么不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理向量检索实验失败后该查…

提示词发布过程中的止损边界

提示词发布过程中的止损边界

2026/8/21 0:09:47

提示词发布过程中的止损边界 这篇要解决什么 提示词发布过程中的止损边界讨论的是一个可复查的工程问题。提示词发布过程中的止损边界不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理提示词发布过程中的止损…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…