Мне было интересно, есть ли способ записать звук определенного приложения? Я искал некоторое время, но не нашел полезной информации об этом. Итак, теперь я использую библиотеку 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);
Также я нашел библиотеку CSCore, которая выглядит как NAudio с некоторыми дополнительными функциями, но с полным отсутствием документации. Может быть в CSCore есть нужный мне функционал?