Получение данных с микрофона в C # - PullRequest
11 голосов
/ 18 мая 2010

Я пытаюсь записать аудиоданные с микрофона (или линейного входа), а затем воспроизвести его снова, используя C #.

Любые предложения о том, как мне этого добиться?

Ответы [ 2 ]

14 голосов
/ 18 мая 2010

взгляните на проект с открытым исходным кодом .NET Voice Recorder , который использует NAudio . Есть статья о Coding4Fun , объясняющая, как она работает.

3 голосов
/ 02 февраля 2014

См. Консольная и многопоточная запись и воспроизведение

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...