3

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ではなく、ラップトップの内蔵サウンドカードのヘッドセットジャックに直接差し込むだけです)。これには、ヘッドセットで聞こえる音声が録音されないという効果があります。録音しているデバイスと関係があると思いますが、よくわかりません。

会話を録音しようとしています。つまり、マイクからの音とヘッドセットで聞こえる音を同時に録音したいということです。

誰かがこれについて正しい方向に私を向けることができますか? ありがとう。

4

1 に答える 1

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

ヘッドセットのマイク/スピーカーを接続すると、Windows はそれを検出しますが、プログラムはまだ古い「デフォルト」エンドポイントを使用しています。最後に追加されたデバイスではありません。これは更新する必要があります。

解決策の 1 つは、エンドポイントをポーリングし、新しい (既定の) デバイスがシステムに追加されているかどうかを確認し、新しいデバイスで記録を停止してから開始することです。

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

説明がわかりにくかったら教えてください。

于 2011-10-31T16:11:13.430 に答える