控制台应用使用NAudio.Core时WaveIn类型未找到的求助
解决NAudio.Core中WaveIn类型缺失的问题
问题根源
NAudio自2.0版本起采用模块化拆分设计,WaveIn这类音频输入设备相关的类型并不包含在基础的NAudio.Core包中,而是属于NAudio.Wave包的功能范畴。
解决方案
- 卸载当前项目中的NAudio.Core包(若仅需音频采集功能,无需保留该基础包),或直接在项目中安装NAudio.Wave NuGet包:
- 使用Package Manager控制台执行命令:
Install-Package NAudio.Wave - 或在Visual Studio的NuGet包管理器中搜索并安装
NAudio.Wave
- 使用Package Manager控制台执行命令:
- 在代码中添加正确的命名空间引用:
using NAudio.Wave;
修改后的代码示例
using System; using System.Threading.Tasks; using NAudio.Wave; namespace PersonalAssistant { class Program { static async Task Main(string[] args) { try { // 创建WaveIn实例并配置参数 using var waveIn = new WaveIn(); waveIn.WaveFormat = new WaveFormat(44100, 16, 2); // 44.1kHz,16位,立体声 waveIn.DataAvailable += WaveIn_DataAvailable; // 开始录制 waveIn.StartRecording(); Console.WriteLine("正在录制音频,按回车停止..."); Console.ReadLine(); waveIn.StopRecording(); } catch (Exception ex) { Console.WriteLine("错误: " + ex.Message); } } private static void WaveIn_DataAvailable(object? sender, WaveInEventArgs e) { // 处理采集到的音频数据,例如写入文件或实时处理 Console.WriteLine($"采集到 {e.BytesRecorded} 字节音频数据"); } } }
额外检查项
- 确保项目目标框架为.NET 6.0(已确认环境符合,可忽略)
- 安装完成后清理项目并重新生成,确保NuGet包引用正确加载
内容的提问来源于stack exchange,提问作者user23146378
相关产品推荐
相关产品推荐

