public RecordingSource(Ratchet.Audio.RecordingClient Client) { _Client = Client; if (Client.Format != typeof(float)) { throw new Exception("Only support Float format for this sample"); } this.SampleRate = Client.SampleRate; }
static void Main(string[] args) { Ratchet.Audio.PlaybackDevice playbackDevice = FindPlaybackDevice(); if (playbackDevice == null) { Console.WriteLine("No playback device found on this computer."); System.Environment.Exit(1); } Ratchet.Audio.RecordingDevice recordingDevice = FindRecordingDevice(); if (recordingDevice == null) { Console.WriteLine("No recording device found on this computer."); System.Environment.Exit(1); } Console.WriteLine("Recording Device: " + recordingDevice.Name); Console.WriteLine("Playback Device: " + playbackDevice.Name); Ratchet.Audio.RecordingClient recordingClient = recordingDevice.CreateClient(); recordingClient.Start(); System.Threading.Thread.Sleep(5 * 1000); recordingClient.Stop(); Ratchet.Audio.Mixer Mixer = new Ratchet.Audio.Mixer(); Mixer.AddSource(new RecordingSource(recordingClient)); Mixer.CreateListener(-1.0f, 0.0f, 0.0f, 0); Mixer.CreateListener(1.0f, 0.0f, 0.0f, 1); Mixer.CreateListener(-1.0f, 0.0f, 0.0f, 2); Mixer.CreateListener(1.0f, 0.0f, 0.0f, 3); Ratchet.Audio.PlaybackClient audioClient = playbackDevice.CreateClient(Mixer); Mixer.OutputChannelCount = audioClient.ChannelCount; Mixer.OutputFormat = audioClient.Format; Mixer.OutputSampleRate = audioClient.SampleRate; audioClient.Start(); System.Threading.Thread.Sleep(5 * 1000); audioClient.Stop(); }