How do I record audio with C#/WPF?

爱⌒轻易说出口 提交于 2019-11-28 06:07:15

Probably the easiest is to use mciSendString function:

public class Program
{
    [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
    private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);

    static void Main(string[] args)
    {
        mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
        mciSendString("record recsound", "", 0, 0);
        Console.WriteLine("recording, press Enter to stop and save ...");
        Console.ReadLine();

        mciSendString("save recsound c:\\work\\result.wav", "", 0, 0);
        mciSendString("close recsound ", "", 0, 0);
    }
}

Another option is to use the DirectShowNet library (there's a sample called PlayCap).

You might also find this CodeProject article useful.

this might help. It will use open source NAuodio project...

http://channel9.msdn.com/coding4fun/articles/NET-Voice-Recorder

:)

I'm using the this library: http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx Mainly due to the simple api. But I don't like this code too much. For example it fixes it's buffers in memory for a long time instead of allocating unmanaged buffers.

mciSendString function records only microphone sound. if no mic is connected it will record nothing.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!