naudio / NAudio

Audio and MIDI library for .NET
MIT License
5.58k stars 1.1k forks source link

IWavePlayer and IWaveIn cross-platform implementations via SDL2 #1153

Open alextnull opened 6 months ago

alextnull commented 6 months ago

IWavePlayer and IWaveIn cross-platform implementations via SDL2. This code is based on NAudio, SDL, SIPSorceryMedia.SDL2, SDL2-CS, osu-framework, and other SDL related projects. Don't expect it to be stable, tested and work the way you assume it will.

// Recording
IWaveIn waveIn = new WaveInSdl();
waveIn.DataAvailable += (s, e) =>
{
    // ...
};
waveIn.StartRecording();

// Playback
IWavePlayer waveOut = new WaveOutSdl();
IWaveProvider waveReader = new WaveFileReader("Example.wav");
waveOut.Init(waveReader);
waveOut.Play();