2011-10-06 45 views
3

我一直在使用http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html中的代碼來錄製音頻。基本上這個代碼:從頭戴式耳機錄製NAudio

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,直接插入筆記本電腦內置聲卡的耳機插孔)時,會出現問題。這會導致我無法在耳機中聽到任何聲音。 我認爲這與我錄製哪種設備有關,但我無法弄清楚。

我正在嘗試錄製對話,這意味着我想錄制來自麥克風的聲音以及我可以同時在耳機中聽到的聲音。

有人能爲我指出正確的方向嗎?謝謝。

回答

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(); 

讓我知道如果我不是很清楚的解釋。