3

C# と NAudio API を使用して再生中の音楽から音量と BPM を検出するためにスピーカー出力を記録しようとしています。

問題は、それを行う方法がわからないことです:/

http://opensebj.blogspot.de/2009/04/naudio-tutorial-5-recording-audio.htmlのサンプル コードがあります。ここでは、少ないコードで簡単な入力を記録しています...

waveInStream = new WaveIn(44100,2);

「44100、2」とはどういう意味ですか? それは録音するデバイスを対象としていますか???

スピーカー出力をターゲットにするにはどうすればよいですか?

誰でも私を助けることができますか?または別のAPIでも?

どうも

4

2 に答える 2

8

おそらく探しているのは、WasapiLoopbackCaptureコンピューターが生成するすべてのサウンドを録音できるクラスです。: これは Windows Vista/7 でのみ機能します。

録音を開始するには、次の操作を行います。

waveIn = new WasapiLoopbackCapture();
waveIn.DataAvailable += InputBufferToFileCallback;    
waveIn.StartRecording();

次に、記録バッファがいっぱいになるたびに、InputBufferToFileCallback関数が呼び出されます。

public void InputBufferToFileCallback(object sender, WaveInEventArgs e)
{
  // The recorder bytes can be found in e.Buffer
  // The number of bytes recorded can be found in e.BytesRecorded
  // Process the audio data any way you wish...
}

NAudio の現在のリリースではコンストラクターが表示されないため、リンクしたチュートリアルによって間違った軌道に乗ったと思いますnew WaveIn(44100,2);。NAudio は、チュートリアルが最初に作成されてから変更された可能性があります。

最後に、数字 44100 と 2 は、それぞれサンプルレートとチャンネル数を示します。

于 2012-08-22T23:15:31.837 に答える