从耳机录制的NAudio

时间:2011-10-06 05:04:38

标签: c# record naudio headset

我一直在使用http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html中的代码录制音频。基本上这段代码:

WaveIn waveInStream;
WaveFileWriter writer;

waveInStream = new WaveIn(44100,2);
writer = new WaveFileWriter(outputFilename, waveInStream.WaveFormat);

waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
waveInStream.StartRecording();

它完美地工作并记录系统上的每个声音。当我插入耳机(而不是USB,直接插入笔记本电脑内置声卡上的耳机插孔)时会出现问题。这样可以记录我在耳机中听到的任何声音。 我认为这与我录制的设备有关,但我无法弄明白。

我正在尝试录制对话,这意味着我想要录制来自麦克风的声音和我可以在耳机中同时听到的声音。

有人能指出我正确的方向吗?感谢。

1 个答案:

答案 0 :(得分:2)

// Get default capturer
waveInStream = new WaveIn(44100,2);

现在,如果您插入耳机麦克风/扬声器,Windows将检测到它,但您的程序仍在使用旧的“默认”端点。不是最后添加的设备。这需要更新。

其中一个解决方案是轮询端点并查看是否已将任何新(默认)设备添加到系统中,然后使用新设备停止开始录制。

waveInStream.StopRecording();
// assign the default recording device if not already done
//waveInStream.DeviceNumber = 0;
waveInStream.StartRecording();

如果我在解释中不是很清楚,请告诉我。