Получение данных с микрофона в С# Я пытаюсь записать аудиоданные с микрофона (или линейного входа), а затем снова воспроизвести его, используя С#. Любые предложения о том, как я могу это достичь? Ответ 1 взгляните на открытый .NET Voice Recorder, в котором используется NAudio. Существует статья о Coding4Fun, объясняющая, как это работает. Ответ 2 См. Консоль и многопоточная запись и воспроизведение class Program { static void Main(string[] args) { rex.Data += new RecorderEx.DataEventHandler(rex_Data); rex.Open += new EventHandler(rex_Open); rex.Close += new EventHandler(rex_Close); rex.Format = pcmFormat; rex.StartRecord(); Console.WriteLine("Please press enter to exit!"); Console.ReadLine(); rex.StopRecord(); } static RecorderEx rex = new RecorderEx(true); static PlayerEx play = new PlayerEx(true); static IntPtr pcmFormat = AudioCompressionManager.GetPcmFormat(1, 16, 44100); static void rex_Open(object sender, EventArgs e) { play.OpenPlayer(pcmFormat); play.StartPlay(); } static void rex_Close(object sender, EventArgs e) { play.ClosePlayer(); } static void rex_Data(object sender, DataEventArgs e) { byte[] data = e.Data; play.AddData(data); } }
Ответ 1 взгляните на открытый .NET Voice Recorder, в котором используется NAudio. Существует статья о Coding4Fun, объясняющая, как это работает.
Ответ 2 См. Консоль и многопоточная запись и воспроизведение class Program { static void Main(string[] args) { rex.Data += new RecorderEx.DataEventHandler(rex_Data); rex.Open += new EventHandler(rex_Open); rex.Close += new EventHandler(rex_Close); rex.Format = pcmFormat; rex.StartRecord(); Console.WriteLine("Please press enter to exit!"); Console.ReadLine(); rex.StopRecord(); } static RecorderEx rex = new RecorderEx(true); static PlayerEx play = new PlayerEx(true); static IntPtr pcmFormat = AudioCompressionManager.GetPcmFormat(1, 16, 44100); static void rex_Open(object sender, EventArgs e) { play.OpenPlayer(pcmFormat); play.StartPlay(); } static void rex_Close(object sender, EventArgs e) { play.ClosePlayer(); } static void rex_Data(object sender, DataEventArgs e) { byte[] data = e.Data; play.AddData(data); } }