十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

NAudio 音频库:5 行代码搭一个 .NET 音频播放器

NAudio 音频库:5 行代码搭一个 .NET 音频播放器 NAudio 音频库5 行代码搭一个 .NET 音频播放器【免费下载链接】NAudioAudio and MIDI library for .NET项目地址: https://gitcode.com/gh_mirrors/na/NAudioNAudio 音频库是一个面向 .NET 的开源音频库把播放、录制、格式转换和 MIDI 的底层实现封装成 C# 类省去手写 Win32 音频接口的麻烦。若你的目标是用 C# 做一个能播、能录、能转格式的音频程序它是目前最省事的起点。从三个真实场景认识它能做什么做一个本地播放器时AudioFileReader负责按扩展名自动选解码器IWavePlayer负责把样本推到声卡播放、暂停、音量都由这两类对象撑起来。批量处理录音或做格式转换时NAudio.SoundFile借助 libsndfile 跨平台读写 WAV、AIFF、FLAC、Opus、MP3配合重采样和声道转换mono to stereo即可完成转码。需要低延迟或实时效果时NAudio.Effects提供均衡器EQ、压缩、混响等节点可以串成信号链signal chain挂在播放器前面。安装 NAudio播放第一首音频在 .NET 项目里用包管理器安装Install-Package NAudio安装后下面的最小示例可以跑起来WaveOut是最稳妥的新手起点AudioFileReader会自动解码 MP3、WAV 等常见格式using var file new AudioFileReader(song.mp3); using var outp new WaveOut(); outp.Init(file); outp.Play(); while (outp.PlaybackState PlaybackState.Playing) Thread.Sleep(100);第一行打开文件第二行建输出设备Init把音频源接到设备上Play开始播放while循环让进程等播完再退出using保证用完自动释放。搭一个本地播放器从 AudioFileReader 到 WasapiPlayer场景做一个能选设备、带音量条、切歌不重启的桌面播放器。用到的模块AudioFileReader读文件WasapiPlayer经WasapiPlayerBuilder构建做低延迟输出MMDeviceEnumerator枚举输出设备供用户选择。注意点Init每个播放器实例只调一次切歌要 Dispose 旧播放器再建新实例默认走共享模式shared mode即可采样率sample rate不匹配时引擎会自动重采样。播放卡顿、无声、格式报错四个高频问题卡顿/爆音——现象是断续或爆音原因是缓冲太小或后台线程没及时补数据先把BufferMilliseconds调大或改用WasapiPlayer共享模式。拔线后没声——现象是切默认设备或拔耳机后声音停原因是播放器绑定了固定端点用WithDefaultDeviceStreamRouting()走自动路由即可跟随系统默认设备。MP3 解不了码——现象是某些格式打开失败原因是缺少对应编解码器codec在 Windows 上换MediaFoundationReader跨平台改用NAudio.SoundFile。独占模式打不开——现象是初始化直接抛异常原因是格式不被硬件支持先用GetSupportedExclusiveFormat探测支持格式或退回共享模式。项目里该往哪儿看入门看 Docs 教程目录选后端看 输出设备类型说明播放核心在 src/NAudio.Core/Wave/低延迟播放器源码在 WasapiPlayer.cs想直接跑起来就开 samples/NAudioDemo/。下一步建议先跑通控制台示例再按需求换WasapiPlayer或多格式读取不必一次把所有包都引进来。【免费下载链接】NAudioAudio and MIDI library for .NET项目地址: https://gitcode.com/gh_mirrors/na/NAudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表