Naudio BadDeviceId 在 C# 中调用 waveInOpen 错误

Posted

技术标签:

【中文标题】Naudio BadDeviceId 在 C# 中调用 waveInOpen 错误【英文标题】:Naudio BadDeviceId calling waveInOpen Error in C# 【发布时间】:2016-04-07 13:12:59 【问题描述】:

我正在尝试录制系统音频。

为什么这段代码会返回异常。错误信息是 BadDeviceId 调用 waveInOpen...

代码有问题吗?还是我应该用代码做点什么?我在计算机上启用了麦克风设备(来自录音设备),但没有插入麦克风。我只想录制系统音频。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NAudio;
using NAudio.Wave;


namespace SeleniumDeneme.Classes

    class RecorderForVideo
    

        public WaveIn waveSource = null;
        public WaveFileWriter waveFile = null;


        public RecorderForVideo()  

        public void CreateObjectsForRecord() 
        
             waveSource = new WaveIn();
             waveSource.WaveFormat = new WaveFormat(44100, 1);
             waveSource.DataAvailable += new EventHandler<WaveInEventArgs>(waveSource_DataAvailable);
             waveSource.RecordingStopped += new EventHandler<StoppedEventArgs>(waveSource_RecordingStopped);

             waveFile = new WaveFileWriter(@"C:\Users\BerkayS\Desktop\Test0001.wav", waveSource.WaveFormat);


             waveSource.StartRecording();


        

        void waveSource_DataAvailable(object sender, WaveInEventArgs e)
        
            if (waveFile != null)
            
                waveFile.Write(e.Buffer, 0, e.BytesRecorded);
                waveFile.Flush();
            
        

        void waveSource_RecordingStopped(object sender, StoppedEventArgs e)
        
            if (waveSource != null)
            
                waveSource.Dispose();
                waveSource = null;
            

            if (waveFile != null)
            
                waveFile.Dispose();
                waveFile = null;
            


        



    

【问题讨论】:

【参考方案1】:

解决了。

我将麦克风插入计算机,问题就解决了。所以代码完全可以工作。

【讨论】:

以上是关于Naudio BadDeviceId 在 C# 中调用 waveInOpen 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF C# 中使用 NAudio 录制音频

使用 C# 使用 NAudio 进行录制

将nAudio录音存储在变量而不是c#中的文件中

使用 NAudio 在 C# 中播放 ohLibSpotify pcm 数据流

NAudio流式语音聊天c#

如何使用 C# NAudio 操作字节?