【发布时间】:2014-04-03 17:57:18
【问题描述】:
我想知道有没有办法录制某个应用程序的声音?我已经搜索了一段时间,但没有找到一些有用的信息。所以现在我正在使用 NAudio 库来记录 WASAPI 环回和麦克风声音,将它们混合在一起并使用以下代码保存到 mp3 文件:
Silence = new WaveOut();
Silence.Init(new SignalGenerator() { Gain = 0 });
Silence.Play();
SoundOut = new WasapiLoopbackCapture();
SoundOut.DataAvailable += SoundOut_DataAvailable;
SoundOut.StartRecording();
SoundOutBuffer = new BufferedWaveProvider(SoundOut.WaveFormat);
SoundIn = new WaveIn();
SoundIn.WaveFormat = SoundOut.WaveFormat;
SoundIn.DataAvailable += SoundIn_DataAvailable;
SoundIn.StartRecording();
SoundInBuffer = new BufferedWaveProvider(SoundIn.WaveFormat);
List<ISampleProvider> Sources = new List<ISampleProvider>
{
SoundOutBuffer.ToSampleProvider(),
SoundInBuffer.ToSampleProvider()
};
Mixer = new MixingSampleProvider(Sources);
Sampler = new SampleToWaveProvider16(Mixer);
MP3Writer = new LameMP3FileWriter("File.mp3", Mixer.WaveFormat, 128);
我还发现了看起来像 NAudio 的 CSCore 库,具有一些额外的功能,但完全缺乏文档。 CSCore 可能有我需要的功能吗?
【问题讨论】:
-
CSCore 实现了 AudioSessions API。但不幸的是,Windows 没有提供任何 API 来捕捉某个应用程序的声音。
标签: c# audio record naudio wasapi