尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

NAudio .NET 音频库:几行代码实现播放、录音与格式转换

NAudio .NET 音频库:几行代码实现播放、录音与格式转换 NAudio .NET 音频库几行代码实现播放、录音与格式转换【免费下载链接】NAudioAudio and MIDI library for .NET项目地址: https://gitcode.com/gh_mirrors/na/NAudio给桌面应用加个录音按钮打开项目却发现 .NET 标准库里连个麦克风 API 都找不到。NAudio 就是为这一刻准备的 .NET 音频与 MIDI 库播放、录音、转码、MIDI 都封好了你只管调 API。它到底帮你解决什么播放、录音、编码音频文件几行代码起步跨平台文件读写、效果、MIDI 在 Windows、Linux、macOS 通用WASAPI 与 ASIO 低延迟输出内置 SoundFont 与 SFZ 软件采样器5分钟跑起来NAudio 3 要求 net9.0 以上元包NAudio会把 Windows 播放与录音全家桶一次带齐装完直接跑这个using NAudio.Wave; using var file new AudioFileReader(song.mp3); using var player new WasapiPlayerBuilder().Build(); player.Init(file); player.Play(); while (player.PlaybackState PlaybackState.Playing) Thread.Sleep(100);AudioFileReader自动识别 WAV、MP3、AIFF不用你碰WaveFormatWasapiPlayer是 NAudio 3 推荐的 WASAPI 输出默认 200ms 缓冲要更低延迟就换AsioDevice或者给 builder 加一个WithLowLatency()。典型场景实操接麦克风用 NAudio 实现实时录音按钮WasapiRecorderBuilder().Build()默认抓系统默认麦克风DataAvailable事件给你零拷贝的ReadOnlySpanbyte直接喂给WaveFileWriter就是一份 wav 文件。要录系统声音换 builder 的 loopback 选项即可不用自己找播放端点。转 MP3 为 WAV接入转码链路MediaFoundationReader负责解 MP3、WMA、AAC、FLAC配WaveFileWriter.CreateWaveFile一行落盘。反向编码用MediaFoundationEncoder能编出什么格式取决于机器上装了哪些 ACM 或 Media Foundation 编解码器。在 Linux 播压缩格式跨平台文件 I/O输出接AlsaOutNAudio.Alsa 包读文件用SoundFileReaderNAudio.SoundFile 包基于 libsndfileFLAC、Ogg、Opus、MP3 通吃。运行时记得装 libasound2 和 libsndfile1。容易踩的坑目标框架NAudio 3 只认 net9.0 以上老 .NET Framework 工程引用会直接失败必须兼容旧框架就留在 2.x别混着引。独占模式WASAPI 独占要求格式被设备原生支持先调GetSupportedExclusiveFormat探一遍别硬塞 48kHz 24bit 然后等异常。回调数据DataAvailable给的 span 只在回调期间有效要留数据先拷出来再写文件直接存引用读到的就是脏内存。周边与延伸samples/NAudioDemoWinForms把播放、录音、设备枚举、效果器都做了演示跑起来比翻 API 文档快得多。Docs/MigratingFromNAudio2.md从 2 升 3 的所有改名与破坏性变更附 before/after 代码。Docs/WasapiPlayer.md低延迟、独占、Raw 模式的调参细节都在这篇里。回头给应用补那个录音按钮时把WasapiRecorderBuilder那段接上 UI 就完事。下一步建议先跑通 samples/NAudioDemo 里的 RecordingDemo再翻 Docs/WasapiRecorder.md 把零拷贝路径吃透。【免费下载链接】NAudioAudio and MIDI library for .NET项目地址: https://gitcode.com/gh_mirrors/na/NAudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表